Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Поиск / 12 сообщений из 12, страница 1 из 1
03.06.2010, 16:39
    #36667260
vladimir_polukhin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
Столкнулся с проблемой нахождения файлов...
Реально ли через НайтиФайлы искать файлы определенного типа на ВСЁМ компьютере, а не в отдельной директории и если да, то каким образом?
...
Рейтинг: 0 / 0
03.06.2010, 16:46
    #36667292
KuzEv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
Файловая структура на ВСЕМ компьютере - древовидная.
Для обхода всех ветвей (и листьев = файлов) необходимо писать рекурсивную функцию, о чем было указано в предыдущих постах.
Данный алгоритм не зависит от среды разработки и является весьма оптимальным.
...
Рейтинг: 0 / 0
03.06.2010, 16:54
    #36667336
pail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
vladimir_polukhinСтолкнулся с проблемой нахождения файлов...
Реально ли через НайтиФайлы искать файлы определенного типа на ВСЁМ компьютере, а не в отдельной директории и если да, то каким образом?

Как обычно - рекурсия

процедура ОдинИсточник(маскаФайла,путь)
файлы=найтифайлы(путь,МаскаФайла);

Для каждого файл Из файлы Цикл
/// собственно, тут найденные по маске файлы и обрабатываем
сообщить(файл.Путь+файл.Имя);
КонецЦикла;
конецПроцедуры

процедура ОдинКаталог(МаскаФайла,путь)
файлы=найтифайлы(путь,"*");
для каждого файл из файлы цикл
если файл.ЭтоКаталог() тогда
ОдинКаталог(МаскаФайла,файл.путь+файл.имя); // вот она - РЕКУРСИЯ для обработки всех подкаталогов
конецЕсли;
конецЦикла;

ОдинИсточник(маскаФайла,путь); // а это целевая обработка одного каталога
конецПроцедуры

одинКаталог("*.dwg","c:\"); // а это самый главный вызов для поиска по всему диску начиная с корня
...
Рейтинг: 0 / 0
03.06.2010, 16:59
    #36667356
Поиск
Рекурсия... хм... не есть оптимально...
берем структура - дерево...
возмем кол-во узлов за 1500 напишем запрос - может и отработает,
но вопрос по нагрузке на сервер а в частности по памяти бьет...

хм сколько настольных поисковичков - яндекс гугла...
зачем простите меня они индексируют то? оптимально?

далее приведу грубую аналогию с БД...
так вот просто рекурсивный запрос на сайте для извлечения каких то вшивых 350 узлов,
валит напроч среднестатический хостинг - по выделенной памяти...

и после этого будем говорить что рекурсия оптимальна для обхода дерава...
...
Рейтинг: 0 / 0
03.06.2010, 17:47
    #36667516
vladimir_polukhin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
В литературе нашел такой вариант, что скажите?

Locator = Новый ComObject("WbemScripting.SWbemLocator");
ИмяКомпьютера = ".";
ServicesSet = Locator.ConnectServer(".");
Items = ServicesSet.ExecQuery("Select * from CIM_DataFile where Extension = 'dwg'");
...
Рейтинг: 0 / 0
03.06.2010, 17:59
    #36667556
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
Помнится примерно на 20-30 вложенной рекурсии 1с сыпется. И кабы даже не на 15
...
Рейтинг: 0 / 0
03.06.2010, 18:09
    #36667586
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
бред какой-то... вы чего, каталогизатор на 1С пишите? почему файлы валяются как попало по всей системе? Шарить каждый раз по Windows/Program Files/TEMP/профиль юзера/ - руки не отвалятся? Предлагаю сначала как-то устранить бардак административно. Потом уже чего-то автоматизировать. Автоматизирование бардака - автоматизированный бардак в итоге.
...
Рейтинг: 0 / 0
03.06.2010, 18:42
    #36667667
KuzEv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
Про мнение об "оптимальности" - согласен. Я даже специально приписал слово "весьма" =)
Оптимальность рекурсии - тема другого разговора.
Я же пытался коллегу направить на понимание алгоритма сбора данных.
В конечном счете "хозяин - барин".
...
Рейтинг: 0 / 0
03.06.2010, 19:28
    #36667757
Поиск
vladimir_polukhinВ литературе нашел такой вариант, что скажите?

Locator = Новый ComObject("WbemScripting.SWbemLocator");
ИмяКомпьютера = ".";
ServicesSet = Locator.ConnectServer(".");
Items = ServicesSet.ExecQuery("Select * from CIM_DataFile where Extension = 'dwg'");

берем в случае предприятия
развертываем яндекс сервер
садим клиентов всем кому надо
ложим на форму в обработке активХ от инет эксплорера
при открытии обработки - присваем активХ адрес локального яндекс сервера
ищем...
хоть пля по всей сети...
а то что в файлопомойках хаос - а вообще пофик...
...
Рейтинг: 0 / 0
03.06.2010, 19:33
    #36667767
Поиск
KuzEvПро мнение об "оптимальности" - согласен. Я даже специально приписал слово "весьма" =)
Оптимальность рекурсии - тема другого разговора.
Я же пытался коллегу направить на понимание алгоритма сбора данных.
В конечном счете "хозяин - барин".

тонкий намек - душе разработчика наверное не понять ярости 200т пользователй, которые хатят разорвать и свитер админа и ег бороду, и еще что то ценное... к чему моя девушка насного вежливее и ценнее относится... прошу прощения за пошлость...

ИМХО не стоит советовать не оптимальных алгоритмов...
...
Рейтинг: 0 / 0
03.06.2010, 19:42
    #36667784
vladimir_polukhin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
Проблема в том, что класс "CIM_DataFile" не имеет метода "Имя", "ПолучитьВремяИзменения" и т.д...
...
Рейтинг: 0 / 0
04.06.2010, 05:09
    #36668178
Поиск
vladimir_polukhinПроблема в том, что класс "CIM_DataFile" не имеет метода "Имя", "ПолучитьВремяИзменения" и т.д...Класс CIM_DataFile

Класс CIM_DataFile представляет файл. Некоторые свойства класса:

Свойство Описание
Caption
Name
Description Краткое описание объекта. Фактически - полный путь к файлу.
FileSize Размер файла в байтах.
Path Путь к каталогу, содержащему файл, завершённый наклонной чертой. Например, "\windows\system\".
EightDotThreeFileName Полный путь с DOS-совместимым именем файла. Например, для файла "c:\windows\microsoft.net\framework\v1.1.4322\vshelpmetadata.reg" это будет "c:\windows\microsoft.net\framework\v1.1.4322\vshelp~1.reg".
Drive Буква диска с двоеточием.
FileName Имя файла без расширения.
Extension Расширение имени файла.
CreationDate Дата и время создания файла.
LastAccessed Дата и время последнего доступа.
Compressed True, если файл сжат, и False в противном случае.
Hidden Булево значение, указывающее на атрибут "скрытый".
System Булево значение, указывающее на атрибут "системный".
Writeable Булево значение, указывающее на то, что файл может быть записан.
Archive True, если файл имеет атрибут "архивный", и False в противном случае.
FileType Описание типа файла (по данным реестра) исходя из его расширения.
FSName Тип файловой системы. Например, "NTFS".
CSName Имя компьютера.


источник http://www.script-coding.info/WMI_FileSystem.html
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Поиск / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]