如何将文件移动到目录而不替换文件?

时间:2016-12-25 14:30:55

标签: c# .net file io directory

我试图将文件从桌面移动到名为" Textfiles"的目录中。但每次我尝试它都会给我这个错误。

  

附加信息:目标文件" C:\ Users \ Developer \ Documents \ Textfiles"是一个目录,而不是一个文件。

现在我知道使用

File.Copy(fileName, targetPath);

这是错的,而且我现在正在使用它,它需要两个参数,第一个是yopu要复制的文件,第二个是它要替换的文件?如果第二个参数我错了,请纠正我。

无论如何,我尝试了System.IO.Directory.Move(fileName, destFile);,但这几乎给了我同样的错误。

这两个参数非常简单,只有两个由路径组成的字符串。

string fileName = filePath.ToString();
string targetPath = @"C:\Users\Developer\Documents\Textfiles";

将fileName传输到targetPath的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

请参阅https://msdn.microsoft.com/en-us/library/c6cfw35a(v=vs.110).aspx

用于文档:

destFileName
Type: System.String
The name of the destination file. This cannot be a directory or an existing file. 

您必须将新文件名添加到目标目录。

您可以使用以下命令获取文件名:

result = Path.GetFileName(fileName);

因此在你的情况下:

string targetPath = @"C:\Users\Developer\Documents\Textfiles\" + Path.GetFileName(fileName);

答案 1 :(得分:2)

您需要指定目标文件名。

string fileOnly = System.IO.Path.GetFileName(fileName);
string targetPath = System.IO.Path.Combine(@"C:\Users\Developer\Documents\Textfiles", fileOnly);
System.IO.File.Move(fileName, targetPath);