我想将所有文件和子目录(包括文件)移动到同一文件夹的另一个子目录中。
例如,我有一个名为 abcd 的文件夹,里面有一个文件 aa 和子文件夹 bb、cc、dd。所以我想在与 abcd\backup 相同的文件夹内创建另一个子目录,并将 aa、bb、cc、dd 即所有文件和文件夹移动到备份文件夹。
我想将所有文件和子目录(包括文件)移动到同一文件夹的另一个子目录中。
例如,我有一个名为 abcd 的文件夹,里面有一个文件 aa 和子文件夹 bb、cc、dd。所以我想在与 abcd\backup 相同的文件夹内创建另一个子目录,并将 aa、bb、cc、dd 即所有文件和文件夹移动到备份文件夹。
这将非常简单。
Directory.Move("SourcePath", "DestinationPath");
处理源文件夹中的所有目录,并为每个文件夹使用上述语法,使用 forloop 或 foreach 移动到目标文件夹。
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
{
}
}