Фильтр по маске при получении списка файлов?

zennomoves

Client
Регистрация
05.12.2011
Сообщения
235
Благодарностей
72
Баллы
28
d5fb617774ef7111c7541ae92320b9d7.png

Синтаксис масок какой?

Напимер мне нужно отобрать все файлы CSS из определённой дирректории?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
*.css

Вот так по идее должно работать.
 

zennomoves

Client
Регистрация
05.12.2011
Сообщения
235
Благодарностей
72
Баллы
28
Спасибо всё в порядке. Я точно также думал, только я вместо такой записи воспользовался "Конструктором регулярных выражений", а он выдал:

c9c6dbc0cb0725753eb93d8cc88d5a0a.png

т.е. не *.css, а .*css
 

C2H5OH

Client
Регистрация
30.09.2014
Сообщения
55
Благодарностей
26
Баллы
18
Регулярные выражение и маска - это разное. Здесь регулярные выражения не подойдут.
Выше Вам правильно подсказали.

А так еще тут в маске можно вроде бы использовать только два символа * и ?
* означает любое количество любых символов, а «?» - любой ОДИН символ.
например надо найти все файлы с расширением зеннопостер пишем так: *.xmlz
или все файлы где есть только в названии три символа с расширением .css: ???.css
и т.д
 
  • Спасибо
Реакции: SHoro и Piton2203

Inetov

Client
Регистрация
03.02.2010
Сообщения
11
Благодарностей
4
Баллы
3
Что-то не работает фильтр по маске в 5.9.5.1:



P.S. Разобрался, все работает, просто надо было список очистить от первых данных, когда брал еще без маски.
 
  • Спасибо
Реакции: rostonix

dima2200

Client
Регистрация
21.11.2014
Сообщения
16
Благодарностей
7
Баллы
3
Такой вопрос, а можно добавить несколько масок например *.png и *.jpeg и если да, то как?
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113

dima2200

Client
Регистрация
21.11.2014
Сообщения
16
Благодарностей
7
Баллы
3

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113

dima2200

Client
Регистрация
21.11.2014
Сообщения
16
Благодарностей
7
Баллы
3
  • Спасибо
Реакции: Mikhail B.

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Значит придется по одному собирать.
Как-то о таком решении не подумал.
C#:
IZennoList listFilePaths = project.Lists["FilePaths"]; // список проекта, в который класть пути к файлам
string directory = @"C:\Files\"; // путь к директории
string extensions = "*.png, *.jpg, *.jpeg"; // маски файлов
SearchOption option = SearchOption.TopDirectoryOnly; // искать только в корневой директории
//SearchOption option = SearchOption.AllDirectories; // искать в корневой директории и в поддиректориях

listFilePaths.AddRange(from filePath in Directory.GetFiles(directory, "*.*", option)
    where extensions.Contains(Path.GetExtension(filePath).ToLower())
    select filePath);
 

dima2200

Client
Регистрация
21.11.2014
Сообщения
16
Благодарностей
7
Баллы
3
C#:
IZennoList listFilePaths = project.Lists["FilePaths"]; // список проекта, в который класть пути к файлам
string directory = @"C:\Files\"; // путь к директории
string extensions = "*.png, *.jpg, *.jpeg"; // маски файлов
SearchOption option = SearchOption.TopDirectoryOnly; // искать только в корневой директории
//SearchOption option = SearchOption.AllDirectories; // искать в корневой директории и в поддиректориях

listFilePaths.AddRange(from filePath in Directory.GetFiles(directory, "*.*", option)
    where extensions.Contains(Path.GetExtension(filePath).ToLower())
    select filePath);
То, что нужно! Спасибо!
 
  • Спасибо
Реакции: evgen_po

Include

Client
Регистрация
18.11.2017
Сообщения
16
Благодарностей
1
Баллы
3
Регулярные выражение и маска - это разное. Здесь регулярные выражения не подойдут.
Выше Вам правильно подсказали.

А так еще тут в маске можно вроде бы использовать только два символа * и ?
* означает любое количество любых символов, а «?» - любой ОДИН символ.
например надо найти все файлы с расширением зеннопостер пишем так: *.xmlz
или все файлы где есть только в названии три символа с расширением .css: ???.css
и т.д
Почему-то не работает.
Например у меня была маска 31??.jpg,
А в списке оказался файл 310.jpg

Как решить эту проблему?
Заранее спасибо за ответ.
 

pablo1994

Client
Регистрация
26.10.2020
Сообщения
7
Благодарностей
5
Баллы
3
*.txt|*.sh

Вот так работает, проверено
 

upravlenie

Client
Регистрация
31.12.2020
Сообщения
232
Благодарностей
16
Баллы
18

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
не работает корректно... в этом случае возьмет файлы txt, но не возьмет файлы sh, когда txt кончатся
Должно работать, сейчас спец. перепроверил.
Вот такая маска например *.qwe|*.log|*.txt|*.zip у меня взяла в список все файлы log, txt и zip, хотя файлов с расширением .qwe нет в папке.
 

upravlenie

Client
Регистрация
31.12.2020
Сообщения
232
Благодарностей
16
Баллы
18
Я проверял на *.jpeg|*.jpg - выдает ошибку
 

zava75

Client
Регистрация
01.12.2019
Сообщения
161
Благодарностей
4
Баллы
18
Должно работать, сейчас спец. перепроверил.
Вот такая маска например *.qwe|*.log|*.txt|*.zip у меня взяла в список все файлы log, txt и zip, хотя файлов с расширением .qwe нет в папке.
Добрый день. А можно использовать фильтр по маске кроме папок и файлов. Например кроме *.jpeg|*.jpg или кроме dir1 и dir2?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
  • Спасибо
Реакции: zava75

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