2012-05-08 5 views
0

У меня есть код, просматривающий каталог и выбирающий все папки, но я хочу, чтобы он выбирал те, которые начинаются с данных. Как мне это сделать?Как отфильтровать имена папок на C#?

Ниже приведен код, у меня есть, что проходит через каталог:

string[] filePaths = Directory.GetDirectories(defaultPath).Where(Data => !Data.EndsWith(".")).ToArray(); 

ответ

10

Нет необходимости использовать LINQ; GetDirectories поддерживает шаблоны поиска и, вероятно, будет значительно быстрее, поскольку фильтрация может быть выполнена файловой системой до, перечисляющей результаты в .NET.

string[] filePaths = Directory.GetDirectories(defaultPath, "Data*"); 

Обратите внимание, что * является подстановочным, который соответствует нулю или более символов.

1

Если «начинается с данными» вы просто означает, имя папки начинается с «Data», это будет работать

string[] filePaths = Directory.GetDirectories(defaultPath) 
    .Where(s => s.StartsWith("Data") && !s.EndsWith(".")).ToArray(); 
Смежные вопросы