НайтиФайл и несколько расширений

1. EvgeniyNP 01.02.18 17:25 Сейчас в теме
Здравствуйте!
Как нужно задать маску, чтобы НайтиФайлы нашла несколько файлов сразу?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
9. DJDUH 17 02.02.18 11:16 Сейчас в теме
(1) а так разве не работает?
НайтиФайлы ("c:\ИскатьЗдесь\","*.jpg;*.pdf)|*.jpg;*.pdf", истина);
10. EvgeniyNP 02.02.18 12:15 Сейчас в теме
(9)
"*.jpg;*.pdf)|*.jpg;*.

скобочка не забыта?
11. DJDUH 17 02.02.18 13:06 Сейчас в теме
(10) проверил - не работает так(((
12. kild 89 02.02.18 23:39 Сейчас в теме
(1) В этой функции нельзя указать несколько расширений файлов.
НайтиФайлы(<Путь>, <Маска>, <ИскатьВПодкаталогах>)
Маска - это не Фильтр. Нельзя указать разделитель символов "|" (вертикальная черта).
В строке маски допускается использование следующих последовательностей:
любой символ, допустимый в имени файла. Сопоставление указанных символов производится с учетом регистра;
"*" (звездочка) - любая последовательность символов;
"?" (знак вопроса) - любой символ;
"[" - класс символов. После открывающей квадратной скобки указывается последовательность символов. Паттерн соответствует любому из указанных символов. Можно указывать диапазон, используя "-". Описание класса символов завершается "]". Для указания "-" в качестве символа класса нужно указать его первым или последним символом. Если после "[" указан знак "!", то класс описывает все символы, кроме указанных.


Пользуйтесь вот этим:
    ИмяКаталога = "C:\Users\Desktop\Тест";
    ИскатьВПодкаталогах = Истина;
    
    МассивМасок = Новый Массив;
    МассивМасок.Добавить("*.txt");
    МассивМасок.Добавить("*.xlsx");
    
    МассивФайлов = Новый Массив;    
    Для Каждого Маска Из МассивМасок Цикл
            ОбщегоНазначения.ЗаполнитьМассивУникальнымиЗначениями(МассивФайлов, НайтиФайлы(ИмяКаталога, Маска, ИскатьВПодкаталогах)); 
    КонецЦикла;    
    
    Если МассивФайлов.Количество() > 0 Тогда          
        Для Каждого ЭлементФайл Из МассивФайлов Цикл             
            Сообщить(ЭлементФайл.Имя);  
            // тут ваша обработка каждого файла
        КонецЦикла;               
    Иначе
        Сообщить("Файлы не найдены.");        
    КонецЕсли;
Показать
user880776; BAMPER; Andrei_Ivanov; emilliya; zarankony; elvira17; stoptime; rozer; +8 Ответить
2. RocKeR_13 1339 01.02.18 17:38 Сейчас в теме
В маске использовать символ "*". например,
*.txt - найдет все файлы с расширением txt
*Name* - найдет все файлы, которые содержат "Name"
Name* - найдет все файлы, которые НАЧИНАЮТСя с "Name"
и т.д.
3. EvgeniyNP 01.02.18 17:40 Сейчас в теме
(2) а если мне нужны файлы допустим только пдф и джепег. как сделать?
4. AnnieCoder 01.02.18 17:49 Сейчас в теме
(3) Подозреваю, что только если дважды дернуть метод НайтиФайлы (1ый - для pdf, 2-ой - для jpg)
5. independ 1538 01.02.18 17:52 Сейчас в теме
(3) вызвать НайтиФайлы с расширением *, полученный массив отфильтровать
6. Mahon83 13 02.02.18 08:52 Сейчас в теме
(3) Только так
МассивФайловPDF = НайтиФайлы(Каталог,"*.pdf");
	    МассивФайловJPG = НайтиФайлы(Каталог,"*.jpg");
7. EvgeniyNP 02.02.18 09:44 Сейчас в теме
(6) хотел такого избежать, но видимо придется.
на одном из форумов нашел такой код
Функция ПолучитьФильтрИзображений() Экспорт
Возврат

"Все картинки (*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf)|*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf|"  +

"Формат bmp (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|"            +

"Формат jpeg (*.jpg;*.jpeg)|*.jpg;*.jpeg|"            +

"Формат tiff (*.tif)|*.tif|"            +

"Формат gif (*.gif)|*.gif|"            +

"Формат png (*.png)|*.png|"            +

"Формат icon (*.ico)|*.ico|"            +

"Формат метафайл (*.wmf;*.emf)|*.wmf;*.emf|";
КонецФункции // ПолучитьФильтрИзображений()
Показать


но у меня он не сработал
8. Mahon83 13 02.02.18 10:12 Сейчас в теме
(7)
ПолучитьФильтрИзображений

Это вероятно фильтр для
ДиалогВыбораФайла.Фильтр
13. kild 89 02.02.18 23:42 Сейчас в теме
(7) Оно и не заработает, потому что это Фильтр, а не Маска для функции НайтиФайлы
14. fixin 4259 21.02.22 10:07 Сейчас в теме
Можно искать *.*, отбрасывая ненужное:

			Расширение = ВРЕГ(Файл.Расширение);
			Если НЕ (
				Расширение = ".DOC"
				ИЛИ Расширение = ".DOCX"
				ИЛИ Расширение = ".XLS"
				ИЛИ Расширение = ".XLSX"
				ИЛИ Расширение = ".PDF"
				) Тогда
				Продолжить;
			КонецЕсли;
Показать
15. PaulSparrow 01.12.23 11:10 Сейчас в теме
Для поиска всего и вся - что мешает в Маску просто задать "*.*"?

Путь = "D:\";
ИскатьВПодкаталогах = Истина;
Маска = "*.*";

МассивФайлов = НайтиФайлы(Путь, Маска, ИскатьВПодкаталогах);
user1445964; +1 Ответить
16. user1445964 20.12.23 16:08 Сейчас в теме
(15)
"*.*"

БЕРЕТ ВСЕ ФАЙЛЫ, ТО ЧТО МНЕ НУЖНО БЫЛО
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот