将所有文件和子目录从一个文件夹移动到同一文件夹的另一个子目录

时间:2013-07-04 11:33:51

标签: c# .net file-io directory subdirectory

我想将所有文件和子目录(包括文件)移动到同一文件夹的另一个子目录。

e.g。我有一个名为abcd的文件夹,我有一个文件aa和子文件夹bb,cc,dd。 所以我想在与abcd \ backup相同的文件夹中创建另一个子目录 并将aa,bb,cc,dd,即所有文件和文件夹移动到备份文件夹。

2 个答案:

答案 0 :(得分:1)

这将非常简单。

Directory.Move("SourcePath", "DestinationPath");

处理源文件夹中的所有目录,并使用上述语法为每个文件夹使用forloop或foreach移动到目标文件夹。

答案 1 :(得分:0)

        string source = @"d:\test";
        string dest = @"d:\move\";

        DirectoryInfo dirInfo = new DirectoryInfo(dest);
        if (dirInfo.Exists == false)
            Directory.CreateDirectory(dest);


        DirectoryInfo dir = new DirectoryInfo(source);
        DirectoryInfo[] dirs = dir.GetDirectories();


        string[] files = Directory.GetFiles(source);
        Int32 i = dirs.Count() + files.Count();
        //   for progress bar

        foreach (string file in files)
        {
            try
            {
                string name = Path.GetFileName(file);
                string destFile = Path.Combine(dest, name);
                // skip some file
                if (name != "file") File.Move(file, destFile);
            }
            catch
            {

            }
        }

        foreach (DirectoryInfo subdir in dirs)
        {
            string temppath = Path.Combine(dest, subdir.Name);
            if (!Directory.Exists(temppath))
                try
                {
                    Directory.Move(subdir.FullName, temppath);
                }
                catch
                {

                }
        }