在.net中獲取文件長度的最快方法是什麼?在.net中獲取文件長度的最快方式是什麼?
注意:我正在通過網絡共享訪問文件。
到目前爲止,我有
- 爲1.5ms FileInfo.Length
- .5ms的FileStream()。長度
在.net中獲取文件長度的最快方法是什麼?在.net中獲取文件長度的最快方式是什麼?
注意:我正在通過網絡共享訪問文件。
到目前爲止,我有
從Adi_aks衍生回答
public static long GetFileLength(string path)
{
using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
{
return fileStream.Length;
}
}
爲什麼不直接使用FileInfo.Length
?
你可以P /調用的Win32 API:的CreateFile,GetFileSizeEx和CloseHandle的,如果你真的想。
我已經重新提出這個問題來表達我的真實意圖。 – Simon 2010-09-23 03:13:25
long size = File.OpenRead(path).Length;
Server.MapPath()只適用於ASP.NET,我不確定找到文件大小的最快方法是不必要地在其上打開一個流(順便說一下,這個代碼也沒有關閉它) – 2010-09-23 03:47:53
更好還沒有做 使用(var fileStream =新的FileStream(路徑,FileMode.Open,FileAccess.Read,FileShare.Read)) { \t var length = fileStream.Length; } – Simon 2010-09-23 08:10:44
你可以的PInvoke的或用FindFirstFile API GetFileAttributesEx電話,但好像很多額外的工作,FileInfo類是已經爲你做。否則我想知道同樣的事情斯科特是:爲什麼你不想使用FileInfo?
出於好奇,有什麼用FileInfo的錯? – 2010-09-23 02:50:34
是的,如果你解釋爲什麼你不能使用FileInfo,人們更可能給你正在尋找的答案 – Luxspes 2010-09-23 02:52:32
@Scott @Luxspes我已經重新提出了這個問題來表達我的真實意圖。 – Simon 2010-09-23 03:12:06