C# 如何在不改变原文件名的情况下复制文件

标签 c# file-copying

我有这个代码:

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”,而我需要后者。

感谢帮助,谢谢。

最佳答案

改变你的

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

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


来自 MSDN page for Path.Combine() :

If path2 contains an absolute path, this method returns path2.

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

关于C# 如何在不改变原文件名的情况下复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18891332/

相关文章:

c# - 如何从 Web 处理程序中的全局类访问自定义字段?

Python shutil copyfile - 缺少最后几行

java - 有效的文件复制

c# - 如何提高或保持复制文件的启动速度

c# - 无法将 IEnumerable<Triangle> 传递到正在寻找 IEnumerable<IShape> 的函数中

c# - 如何在 MathNet 库中将矩阵乘以向量?

c# - 如何在此查询上使用 LINQ?

c# - 将 Action 委托(delegate)作为参数传递给构造函数时出现参数错误

c# - 如何将文件从独立存储复制到“下载”文件夹?

java - bash 命令使用 java process builder 复制文件