【发布时间】:2015-08-11 13:07:44
【问题描述】:
我有以下递归搜索功能:
public List<FileInfo> Search_Files(String strDir, String line)
{
List<FileInfo> files = new List<FileInfo>();
try
{
foreach (String strFile in Directory.GetFiles(strDir,line+r))
{
files.Add(new FileInfo(strFile));
}
foreach (String strSubDir in Directory.GetDirectories(strDir))
{
List<FileInfo> sublist = Search_Files(strSubDir, line);
foreach (FileInfo file_infow in sublist)
{
files.Add(file_infow);
}
}
}
catch (Exception)
{
...
}
return (files);
}
行变量的值看起来像“1234”。 现在我想搜索以下文件:1234c.something 或 1234.something
我创建了以下正则表达式:
Regex r = new Regex("[a-z].* | .*");
我将它添加到行字符串,但它不起作用。为什么这不起作用,我该如何纠正?
【问题讨论】:
-
您不能将正则表达式传递给
.GetDirectories。试试1234c.*(这里,.是文字点,*表示任意数量的字符)。不要忘记将签名更改为public List<FileInfo> Search_Files(String strDir, String line, String r),如果line是1234,那么r必须是c.*。它对你有用吗? -
我不想只找到 c.* 文件,我想找到 1234[a-z].* 文件。
-
我明白了,我发布了一个答案,希望它对你有用。