私はこれを次のようにファイルで簡単に行うことができます:
public static void MoveAllFilesFromDesktopToJDrive()
{
DirectoryInfo di = new DirectoryInfo(@"C:\Users\Tafe\Desktop\");
DirectoryInfo Jdrive = new DirectoryInfo(@"J:\");
foreach (FileInfo fi in di.GetFiles())
{
if (Path.GetFileName(fi.FullName) != "desktop.ini")
{
fi.MoveTo(Jdrive.FullName + Path.GetFileName(fi.FullName));
}
}
}
しかし、ディレクトリで同じ操作を試みると、ボリューム間でディレクトリを移動できないことがわかります。では、これが私が試したことです。
public static void MoveAllDirsFromDeskTopToJDrive()
{
DirectoryInfo di = new DirectoryInfo(@"C:\Users\Tafe\Desktop\");
DirectoryInfo Jdrive = new DirectoryInfo(@"J:\");
foreach (DirectoryInfo dirs in di.GetDirectories())
{
Directory.CreateDirectory(Jdrive + Path.GetFileName(dirs.FullName));
}
}
これにより、ファイルの名前はコピーされますが、コンテンツはコピーされません。メソッドで行ったようにコンテンツを移動するだけですMoveAllFilesFromDesktopToJDrive()
が、ディレクトリにはサブディレクトリやサブディレクトリなどが含まれているため、わかりません。私は再帰について少し知っていますが、これを試みるには十分ではありません。また、そんなに難しいことはありませんか?これを容易にするために、APIにはもっと良いものが必要ですか?そうでなければ、この方法を完了するための助けMoveAllFilesFromDesktopToJDrive()
は命の恩人になるでしょう!