1

在.net中获取文件长度的最快方法是什么?

注意:我正在通过网络共享访问文件。

到目前为止我有

  • 1.5ms FileInfo.Length
  • .5ms FileStream().Length
4

4 回答 4

3

源自 Adi_aks 答案

public static long GetFileLength(string path)
{
    using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        return fileStream.Length;
    }
}
于 2010-09-23T08:14:38.177 回答
2
long size = File.OpenRead(path).Length;
于 2010-09-23T02:56:48.260 回答
1

您可以 PInvoke FindFirstFile 或GetFileAttributesEx API 调用,但这似乎是 FileInfo 类已经为您完成的大量额外工作。否则,我想知道 Scott 的想法是一样的:你为什么不想使用 FileInfo?

于 2010-09-23T02:57:27.797 回答
0

为什么不直接使用FileInfo.Length

如果你真的想的话,你可以 p/invoke Win32 API:CreateFile、GetFileSizeEx 和 CloseHandle。

于 2010-09-23T02:53:22.327 回答