3

だから、これを尋ねるのは不自由だと思いますが、ちょっと困惑しています。tif で終わるディレクトリ内のファイルのリストを取得しようとしています... tif のみ ... tiff ではありません。だから、私はC#でこれをやった...

Directory.GetFiles(path, "*.tif", SearchOption.TopDirectoryOnly);

tif ファイルのみが返されることを期待していますが、そうではありません。私もtiffを取得します。マスク.tif を指定した場合はどうなるでしょうか。それは私を両方得るでしょうが、マスクではありません.tif . コマンドプロンプトでも試してみましたが、DOSでも両方を取得しています。ここで何か不足していますか?これは私には間違っているようです。後で結果をサニタイズできると思いますが、そうする必要がない場合はそれが最善です。

4

4 に答える 4

2

MSDNから:

searchPattern でアスタリスク ワイルドカード文字 (「*.txt」など) を使用する場合、指定したファイル拡張子の長さによって一致動作が異なります。ちょうど 3 文字のファイル拡張子を持つ searchPattern は、3 文字以上の拡張子を持つファイルを返します。最初の 3 文字は、searchPattern で指定されたファイル拡張子と一致します。1 文字、2 文字、または 3 文字を超えるファイル拡張子を持つ searchPattern は、searchPattern で指定されたファイル拡張子と正確に一致する長さの拡張子を持つファイルのみを返します。疑問符のワイルドカード文字を使用すると、このメソッドは指定されたファイル拡張子に一致するファイルのみを返します。たとえば、ディレクトリ内に「file1.txt」と「file1.txtother」という 2 つのファイルがある場合、「file?.txt」の検索パターンは最初のファイルのみを返し、「file*.txt」の検索パターンは最初のファイルのみを返します。両方のファイル。

于 2013-04-03T17:01:43.030 に答える
0

パスがネットワーク共有 (またはマップされたドライブ) にある場合を除き、3 つ以上の文字拡張子が一致します。何らかの理由で、パターンはリモート ドライブの長いファイル名にのみ一致します。

于 2015-10-22T22:01:54.173 に答える
0

Directory.GetFilesFindFirstFileWin32 API の関数を内部的に使用します。

のドキュメントからFindFirstFile:

• 検索には、長いファイル名と短いファイル名が含まれます。

の長いファイル名をasd.tiff持つファイルは、のような短いファイル名を持つためasd~1.tif、結果に表示されます。

于 2013-04-03T17:08:01.213 に答える