C# 文件大小換算

原文地址:http://gis-conquer.blog.sohu.com/117812977.html


 開發中有時候會遇到獲取文件大小的功能。這裏介紹下:
(1)獲取文件的字節長度

        /// <summary>
        /// 獲取文件大小
        /// </summary>
        /// <param name="sFullName"></param>
        /// <returns></returns>
        public static long GetFileSize(string sFullName)
        {
            long lSize = 0;
            if (File.Exists(sFullName))
                lSize = new FileInfo(sFullName).Length;
            return lSize;
        }

(2)將文件的字節長度轉換爲實際應用中的大小
  這裏是一個計算方法:

        /// <summary>
        /// 計算文件大小函數(保留兩位小數),Size爲字節大小
        /// </summary>
        /// <param name="Size">初始文件大小</param>
        /// <returns></returns>
        public static string CountSize(long Size)
        {
            string m_strSize = "";
            long FactSize = 0; 
            FactSize = Size;
            if (FactSize < 1024.00)
                m_strSize = FactSize.ToString("F2") + " Byte";
            else if (FactSize >= 1024.00 && FactSize < 1048576)
                m_strSize = (FactSize / 1024.00).ToString("F2") + " K";
            else if (FactSize >= 1048576 && FactSize < 1073741824)
                m_strSize = (FactSize / 1024.00 / 1024.00).ToString("F2") + " M";
            else if (FactSize >= 1073741824)
                m_strSize = (FactSize / 1024.00 / 1024.00 / 1024.00).ToString("F2") + " G";
            return m_strSize;
        }

(3)獲取一個文件夾下匹配的所有文件的大小

        /// <summary>
        /// 獲取一批文件的大小
        /// </summary>
        /// <param name="sFilePath">文件所在的路徑</param>
        /// <param name="sMask">文件名稱含通配符</param>
        /// <returns></returns>
        public static long GetFilesSize(string sFilePath, string sMask)
        {
            long lSize = 0;
            if (sMask.Trim() == "")
                return lSize;
            DirectoryInfo pDirectoryInfo = new DirectoryInfo(sFilePath);
            if (pDirectoryInfo.Exists == false)
                return lSize;
            FileInfo[] pFileInfos = pDirectoryInfo.GetFiles(sMask, SearchOption.TopDirectoryOnly);
            foreach (FileInfo e in pFileInfos)
            {
                lSize += GetFileSize(e.FullName);
            }
            return lSize;
        }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章