フォルダ内のファイル名をワイルドカードで検索し、更に正規表現で検索する
フォルダ内のファイル名をワイルドカードで検索し、更に正規表現で検索する<参考>
fenri's diary
正規表現を使用してファイルを探す
http://fenri.hatenablog.com/entry/2014/05/15/191224
smdn:総武ソフトウェア推進所
正規表現
http://smdn.jp/programming/netfx/regex/
動作確認済
using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; namespace SampleKese { /* * */ class Program { static void Main(string[] args) { string[] files = FindFiles(@"C:\tmp", @"Hoge0123_up|dn_\d{8}\.zip$", "*.zip", true); foreach (string file in files) { Console.WriteLine(file); } } /* * フォルダ内のファイル名をワイルドカードで検索し、更に正規表現で検索する。 * path: 対象フォルダ * pattern: 正規表現 * wildcard: ワイルドカード * ignorecase: trueの時大文字小文字を区別しない。既定値はtrue */ static string[] FindFiles(string path, string pattern, string wildcard, bool ignorecase) { List<string> lst = new List<string>(); RegexOptions opt = RegexOptions.None; if (ignorecase) opt |= RegexOptions.IgnoreCase; Regex reg = new Regex(pattern, opt); DirectoryInfo dir = new DirectoryInfo(path); FileInfo[] files = dir.GetFiles(wildcard); foreach (FileInfo f in files) { if (reg.IsMatch(f.FullName)) { lst.Add(f.FullName); } } //return ((string[])lst.ToArray()); return lst.ToArray(); } } }