|   |   | 
| 
 | Как из 1С проверить быстро наличие файлов по списку ? быстрее ФС.СуществуетФайл | ☑ | ||
|---|---|---|---|---|
| 0
    
        Холст 17.06.16✎ 00:26 | 
        сабж
 имеем список с именами и путями файлов, может WinAPI или чтото подобное позволяет списком сразу проверить наличие файлов а не по одному | |||
| 1
    
        Звездец 17.06.16✎ 00:26 | 
        спросить у батника, который проверит быстрее     | |||
| 2
    
        Garykom гуру 17.06.16✎ 00:32 | 
        (1)
 Я спросил у батника, Где мои любимые? Файлики из списочка? | |||
| 3
    
        Звездец 17.06.16✎ 00:36 | 
        (2) либо VB, смотря что ближе. Или подождать местного Net-гуру, как раз для него темка. Вот будет ли быстрее это вопрос     | |||
| 4
    
        Холст 17.06.16✎ 00:38 | 
        батник тоже будет пофайлово спрашивать у файловой системы о наличии файла
 может WMI/WinApi позволяет обратиться сразу списком одним обращением ? | |||
| 5
    
        Garykom гуру 17.06.16✎ 00:39 | 
        (3) ФС. она такая 77 что и на Win95 как бы пашет, но вот гуру там свое не сможет запустить ну никак. Хотя если убьет 10-ок лет переписав .net ))     | |||
| 6
    
        Холст 17.06.16✎ 00:39 | 
        батник 
 echo off set list=%~1\FNames.txt if exist "%list%" ( for /f "delims=" %%A in (%list%) do ( if not exist "%~1\%%A" echo %%A не существует ) pause ) else ( dir /b>"%list%" ) | |||
| 7
    
        H A D G E H O G s 17.06.16✎ 00:40 | 
        (4) Нет такого. Только
 FindFirstFile() | |||
| 8
    
        Garykom гуру 17.06.16✎ 00:40 | 
        (4) Все намного проще, делаем dir/w для каталога (понятно что лучше винапи), получаем список имен файлов и в 1С тупо сравниваем.     | |||
| 9
    
        H A D G E H O G s 17.06.16✎ 00:41 | 
        (8) Да можно просто НайтиФайлы()     | |||
| 10
    
        Звездец 17.06.16✎ 00:41 | 
        (4) а как ты хотел? все равно система будет искать файлы поочередно, разница может будет только в скорости выполнения     | |||
| 11
    
        Garykom гуру 17.06.16✎ 00:42 | 
        (9) Так я походу 77 начал забывать уже ((     | |||
| 12
    
        Звездец 17.06.16✎ 00:42 | 
        (8) но опять же, имеем список, но на 77 сравнить вхождение одного списка в другой тоже придется перебирать     | |||
| 13
    
        Garykom гуру 17.06.16✎ 00:46 | 
        (12) Кто сказал такую глупость? Сливаем списки, добавляем колонку колв-во =1 и ТЗ.Свернуть(...     | |||
| 14
    
        Torquader 17.06.16✎ 00:48 | 
        Получается, что быстрее https://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspx ничего не будет, если грамотно передать параметры поиска.     | |||
| 15
    
        Звездец 17.06.16✎ 00:49 | 
        (13) ну кстати да, причем отработает довольно быстро. Осталось узнать что от этого ТС хочет, потому как вариантов результата будет довольно много и их еще придется обработать     | |||
| 16
    
        Torquader 17.06.16✎ 00:49 | 
        Потом, одно дело, когда у вас в директории несколько тысяч файлов и нужно найти среди них какие-то 10 - тогда перебор со списком будет не очень.     | |||
| 17
    
        Garykom гуру 17.06.16✎ 00:50 | 
        (16) Верное замечание, нуна больше инфы.     | |||
| 18
    
        Torquader 17.06.16✎ 00:50 | 
        А, я ещё забыл про WMI и Select * from Win32_DataFile и условие поставить правильно.     | |||
| 19
    
        Torquader 17.06.16✎ 00:54 | 
        И не забывайте, что у (0) "с именами и путями" - они не в одной директории, то есть FindFirstFile может не спасти.     | |||
| 20
    
        Torquader 17.06.16✎ 00:56 | 
        Просто, GetFileAttributes("\?\ИмяФайла" будет быстрее, так как NTFS содержит индексированные директории.     | |||
| 21
    
        Холст 17.06.16✎ 01:18 | 
        Задача проверить наличие файлов сертификатов в папке по списку хранимому в 1С
 способ сначал получить список имеющихся файлов потом сравнить список с искомым списком должно быть быстро Dir отрабатывает быстро, WMI пишут нежелательно тк у юзера может не быть прав к WMI какой аналог Dir/s (получить список файлов желательно с подпапками) в FSO чтобы без DOSокна было ? | |||
| 22
    
        Звездец 17.06.16✎ 01:22 | 
        (21) под сертификатами ты имеешь ввиду файлы картинок? Может не стоит заморачиваться и проверять ночью регламентным заданием     | |||
| 23
    
        Garykom гуру 17.06.16✎ 01:22 | ||||
| 24
    
        Холст 17.06.16✎ 01:23 | 
        если я верно понял, FindFirstFile  делает выборку, а последущие FindNextFile  не делает обращение к жесткому диску     | |||
| 25
    
        Холст 17.06.16✎ 01:29 | 
        (22) ночью неспеша это понятно     | |||
| 26
    
        Torquader 17.06.16✎ 01:37 | 
        (24) Она открывает выборку, а остальные по ней перемещаются.
 Насколько я понимаю, у всех есть некоторый аналог IEnumVariant, где есть перебор. Ну, если просто хочется перебрать, то Scripting.FileSystemObject потом GetFolder и коллекция Files | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |