Помогите сделать сниппет на проверку количества файлов в директории

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
776
Благодарностей
518
Баллы
93
Помогите сделать сниппет.
Есть задача проверить директорию на количество профилей ZP, в директории могут быть разные папки под разные проекты
Пример директории C:\Program Files\ZP\Профили
В папки профили могут быть другие папки с разным количеством профилей:
C:\Program Files\ZP\Профили\Проект 1\
C:\Program Files\ZP\Профили\Проект 2\
C:\Program Files\ZP\Профили\Проект 3\
Нужен сниппет который возьмет из переменной директорию папки (директория уже забита в переменную C:\Program Files\ZP\Профили) и посчитает количество всех профилей во всей директории C:\Program Files\ZP\Профили, в том числе во всех папках этой директории и положит результат в переменную.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 794
Благодарностей
2 466
Баллы
113
Помогите сделать сниппет.
Есть задача проверить директорию на количество профилей ZP, в директории могут быть разные папки под разные проекты
Пример директории C:\Program Files\ZP\Профили
В папки профили могут быть другие папки с разным количеством профилей:
C:\Program Files\ZP\Профили\Проект 1\
C:\Program Files\ZP\Профили\Проект 2\
C:\Program Files\ZP\Профили\Проект 3\
Нужен сниппет который возьмет из переменной директорию папки (директория уже забита в переменную C:\Program Files\ZP\Профили) и посчитает количество всех профилей во всей директории C:\Program Files\ZP\Профили, в том числе во всех папках этой директории и положит результат в переменную.
Получить список файлов по расширению во всех вложенных папках:
string path = project.Directory; // путь к папке
string pattern = @"*.zpprofile";
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path);
int count = 0;
if (dir.Exists) {
    //count = dir.GetFiles(pattern, System.IO.SearchOption.TopDirectoryOnly).Length; // ищем в корневом каталоге
    count = dir.GetFiles(pattern, System.IO.SearchOption.AllDirectories).Length; // ищем во всех папках     
}
return count;
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
776
Благодарностей
518
Баллы
93
Написал такой код ( project.Variables["put_profile"] взять путь из переменной) не работает, выдает ошибку
"Компиляция кода Ошибка в действии "CS0029" "Неявное преобразование типа "ZennoLab.InterfacesLibrary.ProjectModel.ILocalVariable" в "string" невозможно". [Строка: 0; Cтолбец: 15]"


C#:
string path = project.Variables["put_profile"]; // путь к папке
string pattern = @"*.zpprofile";
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path);
int count = 0;
if (dir.Exists) {
    //count = dir.GetFiles(pattern, System.IO.SearchOption.TopDirectoryOnly).Length; // ищем в корневом каталоге
    count = dir.GetFiles(pattern, System.IO.SearchOption.AllDirectories).Length; // ищем во всех папках     
}
return count;
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
776
Благодарностей
518
Баллы
93
Заработало:
C#:
string _response = project.Variables["put_profile"].Value; // путь к папке
string pattern = @"*.zpprofile";
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(_response);
int count = 0;
if (dir.Exists) {
    //count = dir.GetFiles(pattern, System.IO.SearchOption.TopDirectoryOnly).Length; // ищем в корневом каталоге
    count = dir.GetFiles(pattern, System.IO.SearchOption.AllDirectories).Length; // ищем во всех папках     
}
return count;
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)