我试图将文件从我的Resx移到我的电脑上,但我一直有问题。
所以我在参考资料中导入名为“bad”的文件夹,然后使用File.Move
方法将文件夹“bad”移动到我的PC中。
但该程序不断崩溃,因为它说:Cannot create a file when its already exists.
这里是我使用的代码:
//txtpath is the root folder. I let the user choose the root folder and save it in txtpath.text
private void btnbadname_Click(object sender, EventArgs e)
{
string source = "Resources\bad";
string destination = txtpath.Text + @"\RADS\projects\lol_air_client\releases\0.0.1.74\deploy\assets\locale\App";
File.Move(source, destination);
MessageBox.Show("脏话ID已开启, 教程请点击下面的链接");
}
答案 0 :(得分:1)
您正在使用File.Move
移动目录,为什么不使用Directory.Move
。
MSDN documentation只会将文件从源位置移动到目的地,而Directory.Move
会移动目录本身。
如果我误解了你,你想要移动一个文件;
您可以在使用之前检查文件是否存在:
if(File.Exists(fileName))
File.Delete(fileName);
修改强> 如果要遍历目录并确保在移动文件之前该文件不存在,可以使用以下内容:
//Set the location of your directories
string sourceDirectory = @"";
string destDirectory = @"";
//Check if the directory exists, and if not create it
if (!Directory.Exists(destDirectory))
Directory.CreateDirectory(destDirectory);
DirectoryInfo sourceDirInfo = new DirectoryInfo(sourceDirectory);
//Iterate through directory and check the existance of each file
foreach (FileInfo sourceFileInfo in sourceDirInfo.GetFiles())
{
string fileName = sourceFileInfo.Name;
string destFile = Path.Combine(destDirectory, fileName);
if (File.Exists(destFile))
File.Delete(destFile);
//Finally move the file
File.Move(sourceFileInfo.FullName, destFile);
}
答案 1 :(得分:1)
目标目录不能存在。在您的代码中,如果目录不存在,则创建目录,然后尝试移动目录,Move方法将为您创建目录。如果目录已存在,则需要删除它或移动它。
请参阅: Cannot create a file when that file already exists when using Directory.Move
答案 2 :(得分:0)
目的地也应该具有文件名
string destination = txtpath.Text + @"\RADS\projects\lol_air_client\releases\0.0.1.74\deploy\assets\locale\App\yourfilename.ext";
答案 3 :(得分:0)
使用MoveTo时,请提供发送文件的完整路径,包括文件名,例如pic123.jpg。如果您使用DirectoryInfo获取文件数组并想要移动它们中的任何一个,请将文件的Name属性附加到发送文件的目录路径中。 imgFile.MoveTo(“ C:\ myPictures \ ArchiveFolder \ pic123.jpg”)