2013-08-28 32 views
-1

我想将文件复制到目录。我认为这将是一个足够简单的过程。文件复制vs另一种选择?

这是使用代码IM:

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来复制目标不存在的文件从源到目的地?

+5

逃离\与@ “C:\用户\ ...” 或 “c:\\ \\的用户......” –

+1

你键入此或这是你的实际的代码?有大量的语法错误,所以我猜这是前者。如果您没有向我们展示您的实际代码,很难为您提供帮助。 –

+0

@MikePrecup它被重新输入。有很多代码涉及到它,所以我认为这将是更简单的方法。 – user2619395

回答

3

的问题是,这些参数是源将失败文件名和目标文件名。您正在传递一个目标目录,并且程序很混乱,因为您无法将该文件创建为目录。

使用,而不是:

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

是的,现在使更多的认识。谢谢! – user2619395

3

你似乎在传递一些错误的参数为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)。

+0

sourcePath也不存在..我认为该行与他的实际代码altogheter –

+0

断开连接是的,对不起,它是很差重新键入psudo-esque代码。谢谢你! – user2619395

2

您必须指定一个文件名目的地

所以

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

其中

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

不会

相关问题