将文件移动到同一个命名文件夹

时间:2016-04-13 07:39:57

标签: c# io filesystems

我有一些文件夹,我在我的程序运行时检查。 我删除了不必要的文件夹,并将选中的文件夹返回到另一个目录。

我的问题是我总是得到一个例外。我真的不知道为什么。 顺便说一句:当前表和新表的名称相同 :My Exception 翻译,因为它是德语:由于数据已经存在,因此无法创建数据。 我的代码:

public void CreateCheckedStructure() { 

        List<string> checkedDirNew = Program.RemoveTempFolders(GetAllFromDir(Settings.Default.NewFolder));
        List<string> checkedDirCurrent = Program.RemoveTempFolders(GetAllFromDir(Settings.Default.CurrentFolder));

        foreach(string checkedNew in checkedDirNew){

            DirectoryInfo dirInfoNew = new DirectoryInfo(checkedNew);
            foreach (string checkedCurrent in checkedDirCurrent) {
                DirectoryInfo dirInfoCurrent = new DirectoryInfo(checkedCurrent);
                if(dirInfoNew.Name.Equals(dirInfoCurrent.Name)){
                    string checkedFoldersPath = Settings.Default.CheckedTables + "\\" + dirInfoCurrent.Name;
                    Directory.CreateDirectory(checkedFoldersPath);
                    Directory.CreateDirectory(checkedFoldersPath+"\\New");
                    Directory.CreateDirectory(checkedFoldersPath + "\\Current");
                    dirInfoCurrent.MoveTo(checkedFoldersPath + "\\Current");
                    dirInfoNew.MoveTo(checkedFoldersPath + "\\New");
                    break;
                }
            }        
        }

    }

1 个答案:

答案 0 :(得分:0)

您正在创建checkedFoldersPath+"\\New",然后尝试在其上复制另一个文件夹。发生错误是因为它已经存在。如果您尝试合并这两个文件夹,则必须将所有子文件和子目录(递归地)移动到新文件夹,然后删除原始文件夹。

请参阅此答案:C# merge one directory with another