5

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

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

4

2 回答 2

2

这将非常简单。

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

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

于 2013-07-04T11:50:21.523 回答
1
        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
                {

                }
        }
于 2016-06-28T09:39:36.970 回答