再帰的アルゴリズム、削除、空のフォルダをコピーします。
使用してSystem.IO; 名前空間FileManagement { パブリック クラスMyFileManager { /// <要約> /// (空またはない)ディレクトリの削除 /// 1.ディレクトリ内のすべてのファイルを削除し /// 2.削除ディレクトリ内のディレクトリのすべての子孫 /// 3.最後に、(空のディレクトリになってきている)ディレクトリを削除 /// </要約> /// <PARAM NAME =「dirNameに」> ディレクトリ名</ param>の パブリック 静的 ボイド RemoveDir (文字列dirNameに) { IF(!Directory.Exists(dirNameに)) { リターン。 } 文字列 []ファイル名の=のDirectory.GetFiles(dirNameに)。 文字列 []にdirnamesの=のDirectory.GetDirectories(dirNameに)。 foreachの(文字列 fileNameにでファイル名) { File.Delete(filename)で。 } foreachの(ストリング dirName_ 中にdirnames) { RemoveDir(dirName_)。 } Directory.Delete(dirNameに)。 } /// <要約> /// 清空一个目录 /// 1.删除所有的文件 /// 2.空のディレクトリの子孫のすべて /// 3.ディレクトリの子孫のすべてを削除しますが(空のディレクトリになっています) /// </要約> /// <PARAM NAME =「dirnameは」> ディレクトリ名</ PARAM> パブリック 静的 ボイド ClearDir(文字列dirNameに) { IF(!Directory.Exists(dirNameに)) { リターン; } 文字列 [] =ファイル名Directory.GetFiles(dirNameに) 文字列 [] =用にdirnamesのDirectory.GetDirectories( dirNameに); foreachの(文字列 fileNameにで TARGETDIR )のファイル名) { File.Delete(filename)で; } foreachの(文字列 dirName_ 中にdirnames) { ClearDir(dirName_); Directory.Delete(dirName_); } } /// <まとめ> /// ディレクトリの内容が別のものにコピーされディレクトリ /// </要約> /// <PARAM NAME = "SOURCEDIR"> </ param>の /// <PARAM NAME = "TARGETDIR"> </ param>の パブリック 静的 ボイド copydir(文字列 SOURCEDIR、文字列(! { もしDirectory.Exists(TARGETDIR)) { Directory.CreateDirectory(TARGETDIR)。 } 文字列 []ファイル名の=のDirectory.GetFiles(SOURCEDIR)。 文字列 []にdirnamesの=のDirectory.GetDirectories(SOURCEDIR)。 foreachの(文字列 fileNameにでファイル名) { File.Copy(ファイル名、TARGETDIR + Path.DirectorySeparatorChar + Path.GetFileName(filename)で、真)。 } foreachの(文字列 dirName_ 中にdirnames) { ストリング [] splitStr = dirName_.Split(Path.DirectorySeparatorChar)。 CopyDir(dirName_、TARGETDIR + Path.DirectorySeparatorChar + splitStr [splitStr.Length - 1 ])。 } } } }