【发布时间】:2013-03-05 12:01:15
【问题描述】:
有没有更有效的方法来使用 Directory.GetFiles 和 'StartsWith'、'Contains' 和 'EndsWith' 过滤文件名,而不是我目前的方式?
_files = Directory.GetFiles(_path);
if (!String.IsNullOrEmpty(_startsWith))
{
_files = _files.Where(x => x.StartsWith(_startsWith)).ToArray();
}
if (!String.IsNullOrEmpty(_contains))
{
_files = _files.Where(x => x.Contains(_contains)).ToArray();
}
if (!String.IsNullOrEmpty(_endsWith))
{
_files = _files.Where(x => x.EndsWith(_endsWith)).ToArray();
}
【问题讨论】:
-
最慢的部分总是
Directory.GetFiles,这几乎是不可避免的。搜索字符串相对来说可以忽略不计,这不是你想要改进的,是吗? -
GetFiles() 有一个重载,您可以在其中提供搜索模式,您尝试过吗?
标签: c# file filtering contains startswith