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

  • Автор темы Автор темы zennomoves
  • Дата начала Дата начала

zennomoves

Client
Регистрация
05.12.2011
Сообщения
250
Реакции
78
Баллы
28
d5fb617774ef7111c7541ae92320b9d7.png

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

Напимер мне нужно отобрать все файлы CSS из определённой дирректории?
 
Спасибо всё в порядке. Я точно также думал, только я вместо такой записи воспользовался "Конструктором регулярных выражений", а он выдал:

c9c6dbc0cb0725753eb93d8cc88d5a0a.png

т.е. не *.css, а .*css
 
Регулярные выражение и маска - это разное. Здесь регулярные выражения не подойдут.
Выше Вам правильно подсказали.

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

da117-clip-37kb.jpg


P.S. Разобрался, все работает, просто надо было список очистить от первых данных, когда брал еще без маски.
 
  • Спасибо
Реакции: rostonix
Такой вопрос, а можно добавить несколько масок например *.png и *.jpeg и если да, то как?
 
Значит придется по одному собирать.
Как-то о таком решении не подумал.
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);
 
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
Регулярные выражение и маска - это разное. Здесь регулярные выражения не подойдут.
Выше Вам правильно подсказали.

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

Почему-то не работает.
Например у меня была маска 31??.jpg,
А в списке оказался файл 310.jpg

Как решить эту проблему?
Заранее спасибо за ответ.
 
не работает корректно... в этом случае возьмет файлы txt, но не возьмет файлы sh, когда txt кончатся
Должно работать, сейчас спец. перепроверил.
Вот такая маска например *.qwe|*.log|*.txt|*.zip у меня взяла в список все файлы log, txt и zip, хотя файлов с расширением .qwe нет в папке.
 
Я проверял на *.jpeg|*.jpg - выдает ошибку
 
Должно работать, сейчас спец. перепроверил.
Вот такая маска например *.qwe|*.log|*.txt|*.zip у меня взяла в список все файлы log, txt и zip, хотя файлов с расширением .qwe нет в папке.
Добрый день. А можно использовать фильтр по маске кроме папок и файлов. Например кроме *.jpeg|*.jpg или кроме dir1 и dir2?
 
  • Спасибо
Реакции: zava75

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