System.IO.Directory.GetFilesで、複数の種類のファイルを抽出するには?

解決


天津キムラ  2009-01-29 07:05:57  No: 145717

こんにちは。
System.IO.Directory.GetFilesで、指定したディレクトリ以下のファイルを抽出したいと思っています。
例えば拡張子が".txt"のものを抽出する場合は、引数searchPatternで"*.txt"とすればよいのですが、
"*.txt"のものと"*.log"のものを一度に抽出することは可能でしょうか?
もしかしたら、それぞれの拡張子でGetFilesを行い、それぞれの結果を結合するという方法しかないのでしょうか?
ご存知の方がいらっしゃいましたらお教えください。
なお、使用バージョンはVB2008です。


ガッ  2009-01-29 09:10:28  No: 145718

GetFiles()で複数指定できるのはなさそう.
なので正規表現クラスなどを使って代用するのがいいかも.

// C#だけど.
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text.RegularExpressions;

Regex regex = new Regex(@".*\.txt|.*\.log");
IEnumerable<string> p = from file in Directory.GetFiles(@"c:\windows\") where regex.IsMatch(file) select file;
foreach (string matched in p) {
    Console.WriteLine(matched);
}


天津キムラ  2009-01-29 19:30:18  No: 145719

ガッさん、ありがとうございました。
なるほど、正規表現を使うという方法もあるのですね。
あると思います!


天津キムラ  2009-01-29 19:30:58  No: 145720

とりあえず、解決ということで、クローズさせて頂きます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加