我想在使用GetDirectories方法时排除文件夹名称“ .svn”
/**
* Table's columns
*
* @var array
*/
protected $columns = [
'name' => [
'heading' => 'Name',
'value' => '<strong>{entry.name}</strong>',
],
'type' => [
'heading' => 'Type',
],
'categories' => [
'heading' => 'Categories',
'value' => 'entry.type.categories.pluck("name")|join("<br>")',
],
];
我在某处读到GetDirectories的searchPattern参数只能支持?和*通配符,将不支持任何其他正则表达式。
我想使用DirectoryInfo [] dirs填充“ .svn”文件夹(例如)以外的所有文件夹。这可能吗?如果没有,我还有其他选择吗?
答案 0 :(得分:1)
您可以在GetDirectories方法之后使用linq方法。
using System.Linq;
...
...
dir.GetDirectories().Where(d => !d.Name.StartsWith(".")).ToList(); //does not starts with dot.
dir.GetDirectories().Where(d => d.Name != ".svn").ToList(); //does not equal .svn
答案 1 :(得分:0)
是的,MSDN说(https://msdn.microsoft.com/en-au/library/f3e2f6e5(v=vs.110).aspx)搜索模式不支持正则表达式。但是您可以在客户端通过正则表达式过滤结果。例如:
var di = new DirectoryInfo("c:\\");
var dirInfos = di.GetDirectories();
var filtered = from r in dirInfos where !Regex.IsMatch(r.FullName,"$*.svn") select r;
答案 2 :(得分:0)
答案: DirectoryInfo []目录= dir.GetDirectories()。其中(x => x.Name!=“ .svn”)。ToArray(); (并且需要System.Linq;名称空间)
假设以下内容仍然适用:
https://meta.stackexchange.com/questions/1555/mark-a-comment-as-answer-to-a-question