我试图将文件从桌面移动到名为" 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的正确方法是什么?
答案 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);