2

我有这个代码:

var GetDLLFilesForDir = Directory.GetFiles(directory, "*.dll", SearchOption.AllDirectories).Where(s => s.EndsWith(".dll"));
foreach (string DLLFilesForDir in GetDLLFilesForDir)
{
    File.Copy(DLLFilesForDir, Path.Combine(SADIR, DLLFilesForDir), true);
}

但是正如你所看到的,当我去复制它时,我得到了一个错误。我知道该错误是由“DLLFilesForDir”引起的,因为当我已经在使用该文件时,它正在尝试使用“DLLFilesForDir”组合路径。

问题是,我需要文件名保持不变,所以如果我改变了:

Path.Combine(SADIR, DLLFilesForDir);

对此:

Path.Combine(SADIR, DLLFilesForDir + "1");

它会改变被复制文件的名称,因为那样我会有一个“filename1.dll”而不是“filename.dll”,我需要后者。

帮助表示赞赏,谢谢。

4

1 回答 1

2

改变你的

File.Copy(DLLFilesForDir, Path.Combine(SADIR, DLLFilesForDir), true);

File.Copy(DLLFilesForDir, Path.Combine(SADIR, Path.GetFileName(DLLFilesForDir)), true);


Path.Combine() 的 MSDN 页面

如果 path2 包含绝对路径,则此方法返回 path2。

所以你正在尝试将文件复制到自身^^

于 2013-09-19T09:53:20.037 回答