2012-01-04 104 views
2

我试图将文件从NAS复制到驱动器,并且出现错误,指出“目标文件"c:\test"是目录,而不是文件”。我也看过类似的问题(特别是this),但我仍然不知道我要去哪里错了!我的复制操作代码是;将网络文件复制到驱动器

File.Copy(CL, dest, false); 

哪里CL等于在环(该文件的位置,如\\\\domain\music\file)和dest = @"c:\test"“当前位置”。

+0

请张贴在这里你声明CL更多的代码,DEST,等.. – MethodMan 2012-01-04 16:47:24

+0

尝试'c:test.txt'(或者你正在复制的文件的扩展名)。 'c:\ test'确实是一个目录。 – MusiGenesis 2012-01-04 16:49:07

+0

@MusiGenesis:咦?你如何认识到它实际上是一个目录?它可能是,也可能不是; AFAIK,文件不*必须*在Windows中有扩展名,是吗? – Piskvor 2012-01-04 16:53:10

回答

2

不像在命令行上copyxcopy,你必须在File.Copy(source, dest, overwrite)指定目标文件的全名。要建立从源文件和目标目录中的目标文件名,使用

Path.Combine(destDir, Path.GetFileName(sourceFile)) 

总之,用你的变量名:

File.Copy(CL, Path.Combine(dest, Path.GetFileName(CL)), false); 
4

您需要在目标路径的文件名。

你可以做到这一点通过写

Path.Combine(dest, Path.GetFileName(source)) 
+0

辉煌!它似乎工作,非常感谢你:) – Joe 2012-01-04 16:55:59

0

而且CL看起来并不像一个文件时,它似乎是一个目录

相关问题