FileSytem と Ftp の研究で正規表現オブジェクト ボットを使用して検索をフィルター処理しようとしています。このスニペットを Ftp で実行すると動作しますが、ローカル ファイルシステムで実行すると応答しません。
FTPで
string[] filesArray = ftp.ListDirectory(@"/" + SrcPath + @"/").Where(fileName => Regex.IsMatch(fileName, /*@"^[a-zA-Z0-9\-]*?$"*/"(.*)"+ SrcMask, RegexOptions.IgnoreCase)).ToArray();
ローカル ファイル システム上
String[] files = Directory.GetFiles(SrcPath).Where(fileName => Regex.IsMatch(fileName, "(.*)" + *.pdf, RegexOptions.IgnoreCase)).ToArray()
foreach で同じことをすると、if 条件で「none pdf」ファイルにヒットすると、ステートメントがロックされることに気付きます。
string input = "*.pdf";
Regex regx = new Regex("(.*)"+input);
String[] filesName = Directory.GetFiles("c:\\temp\\").Select(fileName => new FileInfo(fileName).FullName).ToArray();
foreach(String s in filesName)
{
if (regx.IsMatch(s))
{
File.Copy(s, "C:\\temp\\files\\"+s.Split('\\').Last(), true);
count++;
}
Console.WriteLine(count);
}