C# で、指定されたディレクトリとその中身をすべて削除する関数を作ってみた。
ポイントを削除前に、ファイルの属性を変更すること。
あとは、ファイル一覧を取得し、ファイルなら削除、ディレクトリならファイル一覧を取得、と再帰的に削除していくだけ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
private void CleanUp(string targetDirectoryPath) { if (Directory.Exists(targetDirectoryPath)) { string[] filePaths = Directory.GetFiles(targetDirectoryPath); foreach (string filePath in filePaths) { File.SetAttributes(filePath, FileAttributes.Normal); File.Delete(filePath); } string[] directoryPaths = Directory.GetDirectories(targetDirectoryPath); foreach (string directoryPath in directoryPaths) { CleanUp(directoryPath); } } Directory.Delete(targetDirectoryPath, false); } |