文件复制与另一种选择
本文关键字:选择 另一种 复制 文件 | 更新日期: 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");
不会