2

3つのファイルを含むディレクトリ'C:\Test'があるとします。

A23456789.txt
A1.txt
G 5.txt

そして、私はこのコマンドを実行します:

Dim FileArr = Directory.GetFiles("C:\Test", "*1.txt", SearchOption.AllDirectories)

3つのファイルすべてが返されます。

これは仕様によるものであり、.NETは8.3の短いファイル名も検索することを理解しています。
しかし、これをオーバーライドして実際のファイル名のみを検索する方法はありますか?

確かに、この時代にはこれを行う機能がなければなりません。それとも私は自分で書く必要がありますか?
一貫性を保つために、検索機能をWindowsエクスプローラーと同じように動作させたいと思います。

4

2 に答える 2

3

最善のアプローチは、フィルターを削除GetFilesし、LINQでフィルターで除外することだと思います。ここで、もう少し制御できます。

Dim FileArr = Directory.GetFiles("C:\Test", "*.txt", SearchOption.AllDirectories)
Dim filtered = From f In FileArr Where Path.GetFileName(f).EndsWith("1.txt")

または同等のもの。

于 2012-06-09T14:17:43.657 に答える
2

これはLINQを使用します:

Dim FileArr = IO.Directory.GetFiles("C:\Test", "*.txt", SearchOption.AllDirectories). _
    Where(Function(s) s Like "*1.txt")
于 2012-06-09T17:06:27.330 に答える