原文地址: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;
}