文件复制与另一种选择

本文关键字:选择 另一种 复制 文件 | 更新日期: 2023-09-27 18:29:26

我想将一个文件复制到一个目录中。我认为这将是一个足够简单的过程。

这是我使用的代码:

string strSrcPath = "C:'Users'Documents'Development'source'11.0.25.10'",
strDstPath = "C:'Users'Documents'Development'testing'11.0.25.10'",
strFile = "BuildLog.txt"
File.Copy(Path.Combine(sourcePath, sourceFile), strDstPath);

这里的问题是,当我执行File.Copy时,它想将一个文件复制到另一个文件,但我不想这样做,因为目标路径中不存在该文件。因此,我遇到了一个错误,它指出了"无法复制,strDstPath是一个目标而不是一个文件"

有什么东西可以代替File.Copy将目标中不存在的文件从源复制到目标吗?

文件复制与另一种选择

问题是参数是源文件名和目标文件名。您正在传递一个目标目录,程序会感到困惑,因为您无法将文件放入目录中。

改为使用:

File.Copy(Path.Combine(strSrcPath , strFile ), Path.Combine(strDstPath, strFile);

您似乎向Path.Combine(第二个)传递了一些错误的参数。它应该是strFile,而不是sourceFile,这还不清楚它是从哪里来的。

您还需要为目标文件夹提供一个文件名:

File.Copy(Path.Combine(sourcePath, strFile), Path.Combine(strDstPath, strFile));

您还需要转义字符串中的'字符,因为您的代码可能无法编译。这可以通过使用''或在字符串开头使用@字符来完成。

string strSrcPath = @"C:'Users'Documents'Development'source'11.0.25.10'",
strDstPath = @"C:'Users'Documents'Development'testing'11.0.25.10'",
strFile = "BuildLog.txt"
File.Copy(Path.Combine(sourcePath, strFile), Path.Combine(strDstPath, strFile));

还要确保您指定的目标文件夹存在。如果它不存在,则需要首先创建它(使用Directory.CreateDirectory方法)。

您必须为目标指定一个文件名

所以

File.Copy("XMLFile1.xml", @"c:'temp");

将在处失败

File.Copy("XMLFile1.xml", @"c:'temp'XMLFile1.xml");

不会