在.net中获取文件长度的最快方法是什么?
注意:我正在通过网络共享访问文件。
到目前为止我有
- 1.5ms FileInfo.Length
- .5ms FileStream().Length
源自 Adi_aks 答案
public static long GetFileLength(string path)
{
using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
{
return fileStream.Length;
}
}
long size = File.OpenRead(path).Length;
您可以 PInvoke FindFirstFile 或GetFileAttributesEx API 调用,但这似乎是 FileInfo 类已经为您完成的大量额外工作。否则,我想知道 Scott 的想法是一样的:你为什么不想使用 FileInfo?
为什么不直接使用FileInfo.Length
?
如果你真的想的话,你可以 p/invoke Win32 API:CreateFile、GetFileSizeEx 和 CloseHandle。