1

質問にまっすぐに...拡張子付きのWord文書などのファイル(.doc)と、で始まるそれぞれのサンプルファイルがあります(.sample)

今、私は単語文書だけをロードしたいと思います..

以下に示すようにファイルをロードする方法を見つけましたが、これはすべてのファイルをロードします

ロード中にこれらのファイルをフィルタリングする方法を誰か教えてもらえますか?

これは私がやろうとしていることです:

Dim files = Array.FindAll(Directory.GetFiles(mydir), Function(x) (Not x.StartsWith(".sample")))

これは、上記のファイルで構成される私のディレクトリです。

ここに画像の説明を入力

4

3 に答える 3

2

それを使用する方法では、すべてのファイルが取得され (計算コスト全体を支払う)、フィルター処理されます。

この記事で説明したように、ファイル システムからファイルを取得する際に検索パターンを直接使用できます。

私はあなたがそのようなことをすることができると思います:

Dim files = Directory.GetFiles(mydir,".doc*")

ファイル名の例を挙げていただければ、適用する適切なフィルターも提供できるでしょう。

私が助けてくれることを願っています!

于 2013-11-15T07:56:26.400 に答える
1

GetFiles メソッドは、指定したパスを含むファイル名を返します。

したがって、ファイルがフォルダーにあるC:\working\場合、mydir変数には"C:\working\"次のものが含まれ、GetFiles のすべての結果は次のようになります。

"C:\working\.sample_filename.doc"
"C:\working\123797.doc"

xx.StartsWithは常にで始まるため、常にfalseを返しますC:\

これを試して:

Dim files = Array.FindAll(Directory.GetFiles(mydir), Function(x) (Not x.StartsWith(mydir & ".sample")))

これは、mydir変数が\文字で終わることを前提としていることに注意してください。そうでない場合は、関数内の連結に追加します。

于 2013-11-15T07:54:33.620 に答える
0

これを試して、

   Dim files = Array.FindAll(Directory.GetFiles(mydir), Function(x) (Not Path.GetFileName(x).StartsWith(".sample")))
于 2013-11-15T08:06:46.820 に答える