【发布时间】:2018-12-07 18:04:29
【问题描述】:
我在将文件从列表框移动到新创建的文件夹时遇到问题。我得到:当文件已经存在时无法创建文件。
public void CreateFolders()
{
//create folders
string folder1 = pattern.Substring(0, 2);
string folder2 = pattern.Substring(3, 2);
string folder3 = pattern.Substring(6, 2);
Directory.CreateDirectory("c:\\destinationfolder" + "\\" + folder1);
Directory.CreateDirectory("c:\\destinationfolder" + "\\" + folder1 + "\\" + folder2);
Directory.CreateDirectory("c:\\destinationfolder" + "\\" + folder1 + "\\" + folder2 + "\\" + folder3);
var destinationDirectoryFinal = Directory.CreateDirectory("c:\\destinationfolder" + "\\" + folder1 + "\\" + folder2 + "\\" + folder3);
destinationDirectory = destinationDirectoryFinal.FullName.ToString();
}
public void MoveFiles()
{
try
{
//Move files from listbox to newly created folders
foreach (string files in listBox1.Items)
{
File.Move(files, destinationDirectory);
}
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex);
}
}
【问题讨论】:
-
错误信息“当文件已存在时无法创建文件”的哪一部分你不明白?
-
CreateFolders方法在这里是否相关?此外,CreateDirectory将在指定路径中创建所有目录(如有必要),因此可以将所有代码替换为一行:destinationDirectory = Directory.CreateDirectory(Path.Combine("c:\\destinationfolder", pattern.Substring(0, 2), pattern.Substring(3, 2), pattern.Substring(6, 2))).FullName; -
CreateFolders 方法不相关。这只是为了帮助我将每个小任务分开,直到我完成所有工作。我已经把它结合起来了。当我应该使用 File.Copy 时,我使用了 File.Move。谢谢。