C#と再帰アルゴリズムを削除するには、空、コピーディレクトリ

再帰的アルゴリズム、削除、空のフォルダをコピーします。

使用して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 ])。
            } 
        } 
    } 
}

 

おすすめ

転載: www.cnblogs.com/liliuwei/p/11228319.html