我正在尝试在 fileSytem 和 Ftp 研究中使用 Regex 对象机器人过滤搜索。如果我在 Ftp 上运行此代码段,它可以工作,但如果我在本地 FileSystem 上运行它,它不会响应:
在 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 做同样的事情,我注意到当它遇到“none pdf”文件时,在 if 条件下,语句被锁定:
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);
}