遞歸刪除文件夾目錄及文件的方法


/****************************************
        * 函數名稱:DeleteFolder
        * 功能說明:遞歸刪除文件夾目錄及文件
        * 參    數:dir:文件夾路徑
        * 調用示列:
        *           string dir = Server.MapPath("test/");  
        *           DeleteFolder(dir);       
       *****************************************/
       /// <summary>
       /// 遞歸刪除文件夾目錄及文件
       /// </summary>
       /// <param name="dir"></param>  
       /// <returns></returns>
       public static void DeleteFolder(string dir)
       {
           if (Directory.Exists(dir)) //如果存在這個文件夾刪除之 
           {
               foreach (string d in Directory.GetFileSystemEntries(dir))
               {
                   if (File.Exists(d))
                       File.Delete(d); //直接刪除其中的文件                        
                   else
                       DeleteFolder(d); //遞歸刪除子文件夾 
               }
               Directory.Delete(dir, true); //刪除已空文件夾                 
           }
       }

 

#region 獲取文件夾大小
        /****************************************
         * 函數名稱:GetDirectoryLength(string dirPath)
         * 功能說明:獲取文件夾大小
         * 參    數:dirPath:文件夾詳細路徑
         * 調用示列:
         *           string Path = Server.MapPath("templates"); 
         *           Response.Write(DotNet.Utilities.FileOperate.GetDirectoryLength(Path));       
        *****************************************/
        /// <summary>
        /// 獲取文件夾大小
        /// </summary>
        /// <param name="dirPath">文件夾路徑</param>
        /// <returns></returns>
        public static long GetDirectoryLength(string dirPath)
        {
            if (!Directory.Exists(dirPath))
                return 0;
            long len = 0;
            DirectoryInfo di = new DirectoryInfo(dirPath);
       //directoryinfo GetDirectories() 是獲取指定目錄的所有文件夾,directoryinfo GetFiles() 是獲取指定目錄的所有文件。
            foreach (FileInfo fi in di.GetFiles())
            {
                len += fi.Length;
            }
            DirectoryInfo[] dis = di.GetDirectories();
            if (dis.Length > 0)
            {
                for (int i = 0; i < dis.Length; i++)
                {
                    len += GetDirectoryLength(dis[i].FullName);
                }
            }
            return len;
        }
        #endregion

        #region 獲取指定文件詳細屬性
        /****************************************
         * 函數名稱:GetFileAttibe(string filePath)
         * 功能說明:獲取指定文件詳細屬性
         * 參    數:filePath:文件詳細路徑
         * 調用示列:
         *           string file = Server.MapPath("robots.txt");  
         *            Response.Write(DotNet.Utilities.FileOperate.GetFileAttibe(file));         
        *****************************************/
        /// <summary>
        /// 獲取指定文件詳細屬性
        /// </summary>
        /// <param name="filePath">文件詳細路徑</param>
        /// <returns></returns>
        public static string GetFileAttibe(string filePath)
        {
            string str = "";
            System.IO.FileInfo objFI = new System.IO.FileInfo(filePath);
            str += "詳細路徑:" + objFI.FullName + "<br>文件名稱:" + objFI.Name + "<br>文件長度:" + objFI.Length.ToString() + "字節<br>創建時間" + objFI.CreationTime.ToString() + "<br>最后訪問時間:" + objFI.LastAccessTime.ToString() + "<br>修改時間:" + objFI.LastWriteTime.ToString() + "<br>所在目錄:" + objFI.DirectoryName + "<br>擴展名:" + objFI.Extension;
            return str;
        }
        #endregion

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM