C# 路径作为类似于Directory.GetFiles的方法的模式匹配的一部分
C# 路径作为类似于Directory.GetFiles的方法的模式匹配的一部分,c#,.net,vb.net,C#,.net,Vb.net,Directory.GetFiles有一个重载,该重载采用路径和搜索模式: var files = Directory.GetFiles(@"c:\path\to\folder", "*.txt"); 返回指定文件夹中与模式匹配的文件。是否有一个内置的.NET方法将路径作为搜索模式的一部分 var files1 = Something.GetFiles(@"c:\path\to\folder\*.txt"); 不,没有这样的事,但我有过无数次这样的需要。幸运的是,它很容易写: public
Directory.GetFiles
有一个重载,该重载采用路径和搜索模式:
var files = Directory.GetFiles(@"c:\path\to\folder", "*.txt");
返回指定文件夹中与模式匹配的文件。是否有一个内置的.NET方法将路径作为搜索模式的一部分
var files1 = Something.GetFiles(@"c:\path\to\folder\*.txt");
不,没有这样的事,但我有过无数次这样的需要。幸运的是,它很容易写:
public string[] SearchFiles(string query)
{
return Directory.GetFiles(
Path.GetDirectoryName(query),
Path.GetFileName(query));
}
不太原始的版本可能会处理更多的特殊情况(如果需要):
有了这个新版本(请参见IsDirectory()
code),您可以这样使用它:
SearchFiles(@"c:\windows\*.*");
SearchFiles(@"c:\windows\");
SearchFiles(@"c:\windows");
这足以满足我的需要,但如果文件夹路径中有通配符,则它将不匹配,而不是仅在文件名中有通配符。@ZevSpitz绝对,要匹配路径中的通配符,您必须拆分搜索路径中的每个块。
SearchFiles(@"c:\windows\*.*");
SearchFiles(@"c:\windows\");
SearchFiles(@"c:\windows");