ファイルを含むすべてのファイルとサブディレクトリを同じフォルダーの別のサブディレクトリに移動したい。
たとえば、内部に 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
{
}
}