.net でファイルの長さを取得する最速の方法は何ですか?
注: ネットワーク共有経由でファイルにアクセスしています。
これまでのところ、
- 1.5ms ファイル情報の長さ
- .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;
FindFirstFile またはGetFileAttributesEx API 呼び出しを PInvoke することもできますが、それは FileInfo クラスが既に行っている多くの余分な作業のように思えます。それ以外の場合は、Scott と同じことを考えています。なぜ FileInfo を使用したくないのですか?
なぜ使用しないのFileInfo.Length
ですか?
必要に応じて、CreateFile、GetFileSizeEx、および CloseHandle の Win32 API を p/invoke できます。