Какой самый быстрый способ получить длину файла в .net? - PullRequest
1 голос
/ 23 сентября 2010

Какой самый быстрый способ получить длину файла в .net?

Примечание. Я обращаюсь к файлам через общий сетевой ресурс.

Пока у меня есть

  • 1,5 мс FileInfo.Length
  • .5 мс FileStream (). Длина

Ответы [ 4 ]

2 голосов
/ 23 сентября 2010

Получено из ответа Adi_aks

public static long GetFileLength(string path)
{
    using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        return fileStream.Length;
    }
}
2 голосов
/ 23 сентября 2010
long size = File.OpenRead(path).Length;
1 голос
/ 23 сентября 2010

Вы можете вызывать API-вызовы FindFirstFile или GetFileAttributesEx , но это кажется большой дополнительной работой, которую класс FileInfo уже делает для вас.Иначе мне интересно то же самое, что Скотт: почему бы вам не использовать FileInfo?

0 голосов
/ 23 сентября 2010

Почему бы просто не использовать FileInfo.Length?

Вы можете запустить / вызвать Win32 API: CreateFile, GetFileSizeEx и CloseHandle, если вы действительно этого хотите.

...