Как из 1С проверить быстро наличие файлов по списку ? быстрее ФС.СуществуетФайл #774672


#0 by Холст
сабж имеем список с именами и путями файлов, может WinAPI или чтото подобное позволяет списком сразу проверить наличие файлов а не по одному
#1 by Звездец
спросить у батника, который проверит быстрее
#2 by Garykom
Я спросил у батника, Где мои любимые? Файлики из списочка?
#3 by Звездец
либо VB, смотря что ближе. Или подождать местного Net-гуру, как раз для него темка. Вот будет ли быстрее это вопрос
#4 by Холст
батник тоже будет пофайлово спрашивать у файловой системы о наличии файла может WMI/WinApi позволяет обратиться сразу списком одним обращением ?
#5 by Garykom
ФС. она такая 77 что и на Win95 как бы пашет, но вот гуру там свое не сможет запустить ну никак. Хотя если убьет 10-ок лет переписав .net ))
#6 by Холст
батник off set list=%~1FNames.txt if exist "%list%" (     for /f "delims=" %%A in (%list%) do (       if not exist "%~1%%A" echo %%A не существует     )     pause   ) else (     dir /b>"%list%" )
#7 by H A D G E H O G s
Нет такого. Только FindFirstFile
#8 by Garykom
Все намного проще, делаем dir/w для каталога (понятно что лучше винапи), получаем список имен файлов и в 1С тупо сравниваем.
#9 by H A D G E H O G s
Да можно просто НайтиФайлы
#10 by Звездец
а как ты хотел? все равно система будет искать файлы поочередно, разница может будет только в скорости выполнения
#11 by Garykom
Так я походу 77 начал забывать уже ((
#12 by Звездец
но опять же, имеем список, но на 77 сравнить вхождение одного списка в другой тоже придется перебирать
#13 by Garykom
Кто сказал такую глупость? Сливаем списки, добавляем колонку колв-во =1 и ТЗ.Свернуть(...
#14 by Torquader
Получается, что быстрее ничего не будет, если грамотно передать параметры поиска.
#15 by Звездец
ну кстати да, причем отработает довольно быстро. Осталось узнать что от этого ТС хочет, потому как вариантов результата будет довольно много и их еще придется обработать
#16 by Torquader
Потом, одно дело, когда у вас в директории несколько тысяч файлов и нужно найти среди них какие-то 10 - тогда перебор со списком будет не очень.
#17 by Garykom
Верное замечание, нуна больше инфы.
#18 by Torquader
А, я ещё забыл про WMI и Select * from Win32_DataFile и условие поставить правильно.
#19 by Torquader
И не забывайте, что у "с именами и путями" - они не в одной директории, то есть FindFirstFile может не спасти.
#20 by Torquader
Просто, GetFileAttributes("?ИмяФайла" будет быстрее, так как NTFS содержит индексированные директории.
#21 by Холст
Задача проверить наличие файлов сертификатов в папке по списку хранимому в 1С способ сначал получить список имеющихся файлов потом сравнить список с искомым списком должно быть быстро Dir отрабатывает быстро, WMI пишут нежелательно тк у юзера может не быть прав к WMI какой аналог Dir/s (получить список файлов желательно с подпапками) в FSO чтобы без DOSокна было ?
#22 by Звездец
под сертификатами ты имеешь ввиду файлы картинок? Может не стоит заморачиваться и проверять ночью регламентным заданием
#23 by Garykom
#24 by Холст
если я верно понял, FindFirstFile  делает выборку, а последущие FindNextFile  не делает обращение к жесткому диску
#25 by Холст
ночью неспеша это понятно
#26 by Torquader
Она открывает выборку, а остальные по ней перемещаются. Насколько я понимаю, у всех есть некоторый аналог IEnumVariant, где есть перебор. Ну, если просто хочется перебрать, то Scripting.FileSystemObject потом GetFolder и коллекция Files
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям