ファイルをバックアップするプログラムを作成しようとしています。コピー部分はすでに動作していますが、コピー元ディレクトリに存在しないディレクトリやファイルをコピー先ディレクトリから削除したいと思います。ソースディレクトリに存在しない場合にのみ、ターゲットディレクトリ内のファイルを削除します。
私はの線に沿って何かを考えています:
// Get existing files in destination
string[] existingTargetFiles = Directory.GetFiles(targetDir, "*.*", SearchOption.AllDirectories);
// Get existing directories in destination
string[] existingTargetDirectories = Directory.GetDirectories(targetDir, "*", SearchOption.AllDirectories);
// Compare and delete directories that exist in destination but not source
foreach (string existingDirectory in existingTargetDirectories)
{
if (!Directory.Exists(Path.Combine(sourceDir, existingDirectory)))
Directory.Delete(Path.Combine(targetDir, existingDirectory));
}
}
// Compare and delete files that exist in destination but not source
foreach (string existingFiles in existingTargetFiles)
{
if (!Directory.Exists(Path.Combine(sourceDir, existingFiles)))
Directory.Delete(Path.Combine(targetDir, existingFiles));
}
}
この作品のようなものを作る方法上の任意の考えを?
この再帰的な問題を解決する必要があります – NtFreX