2

vb.net または C# で、すべてのファイル (例: 1000000) をスキャンしてすべてを取得する代わりに、フォルダから特定の数のファイル (例: 100) を取得することは可能ですか?

はいの場合、実装は何ですか?

どうもありがとう

4

4 に答える 4

2

.Net Framework 4.0 以降では、DirectoryInfo.EnumerateFilesを使用して、必要な数のファイルを取得できます。このメソッドは、戻る前にディレクトリのフル スキャンを必要としません。

于 2012-12-04T12:54:32.320 に答える
1

バージョン 4 より前のバージョンの .NET Framework で動作するソリューションが必要なので、念頭に置いているのは WinAPIのFindFirstFile関数とFindNextFile関数だけです。

EnumerateFilesこれらの WinAPI 関数に基づくのこの実装を見てください。

于 2012-12-07T22:48:13.320 に答える
0
foreach (var file in new DirectoryInfo("c:/mydirectory").EnumerateFiles())
{
    //do stuff
}
于 2012-12-04T12:54:37.047 に答える
0

最初にGetFilesメソッドを呼び出して、ディレクトリに関連するすべてのファイルのパスを取得し (ファイルはまだ読み取られていません)、コレクションから最初の 100 個のファイルを (たとえば、StreamReader などを使用して) 読み取る必要があると思います。

これは、フレームワークが 4 未満の場合に機能します。

于 2012-12-05T07:44:00.363 に答える