|
|
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
Как получить список всех файлов на диске? через fso получается долго - с 1т диска инфа снимается 40 минут... чтоб потом произвести поиск в этом списке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 19:41:05 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
вадя, Список файлов уже есть. "Indexing Service" называется. А поиск в нем выглядит, к примерy, так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2009, 21:24:04 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
Всё гениальное - просто. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 00:28:41 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
mayton, Прошу заметить, что ваша команда перестраивает индекс по всему дереву диска, что может быть долго по времени. Каждый раз его нужно будет пересоздать перед поиском по нему-же. Мой вариант (ээээ... мною предложенный :) поиска использует индекс виндовса, т.е. перестраивать его не надо. Вот такой "advance" ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 01:05:09 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
А если IndexingService остановлен или залочен - то ваш скрипт не будет работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 09:18:07 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
если IndexingService остановлен то скрипт не работает. dir c:\ /s /b > my_fucken_files.txt - но для моей задачи потребуется его ещё и загрузить в рекордсет. сначала произвест запуск из кода , дождаться выполнения, пропарсить и только потом производить поиск по "Indexing Service" интересует описание как такое строится q.Query = "@filename= 7261_sysfiles_e.tar" q.Catalog = "query://./SYSTEM" что-то мне не удалось найти .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 09:49:47 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
А если через WMI попробовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 09:53:46 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
покажи как, я не против, лишь бы быстро ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 10:26:00 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
вадяесли IndexingService остановлен то скрипт не работает. dir c:\ /s /b > my_fucken_files.txt - но для моей задачи потребуется его ещё и загрузить в рекордсет. сначала произвест запуск из кода , дождаться выполнения, пропарсить и только потом производить поиск Если задача "упирается рогом" в скорость, то я в таких случаях меняю постановку. Думали о репликации? Об анализе изменений в ФС? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 11:20:27 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
Смотри класс CIM_DataFile. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 11:26:28 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
Никак не разберусь, как же правильно вставлять линки :( вот тут глянь http://www.script-coding.info/WMI_FileSystem.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 11:28:01 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
авторДумали о репликации? Об анализе изменений в ФС? нет, это одна из задач, в базе хранятся полные имена файлов (на разных компов). время от времени надо проверять соответствие. и при отсутствие этого соответствия попытаться найти файл. это конечно не панацея, и поэтому времени должно занимать как можно меньше. 2Relic Hunter твой скрипт выполнялся более часа... какие настройки у системы должны быть, чтоб работало ? WMI тоже обращается к диску, довольно продолжительное время. и как сделать чтоб это было в рекордсете? Set colFiles = objService.ExecQuery("SELECT Name FROM CIM_DataFile WHERE Drive = 'C:' ") типа такого set rs = q.CreateRecordSet( "sequential" ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 12:41:47 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
вадяи как сделать чтоб это было в рекордсете? Set colFiles = objService.ExecQuery("SELECT Name FROM CIM_DataFile WHERE Drive = 'C:' ") Возвращает коллекцию. Пример работы с коллекцией приведен там же ниже. Какая разница с чем работать м рэкордсетом или коллекцией? А не проще будет отслеживать изменения через API винды ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 12:57:18 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
автор А не проще будет отслеживать изменения через API винды ? может быть, подскажи где подсмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 13:26:38 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
авторПример работы с коллекцией приведен там же ниже не нашёл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 13:28:25 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
авторFor Each objFile In colFiles WScript.Echo objFile.Name Next если тут искать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 13:32:47 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
А расскажите, что все-таки за задача у вас стоит. Откуда эти файлы берутся, которые надо искать? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 13:53:25 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
У меня - дежа-вю. Подобную задачу мы решали лет 5 назад, когда строили файловое хранилище XML документов. Стояла задача - отслеживать изменения и синхронизировать с другим хранилищем. Репликация не подходила т.к. синхронизировать нужно было не все файлы а избирательно (примерно 10% от всего объёма). Задача решалась API которое использует FileMon. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 14:15:23 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
вадяавторПример работы с коллекцией приведен там же ниже не нашёл В табличке приведены свойства класса CIM_DataFile. В запросе, можно или выбрать их все - select * ... , или указать конкретные поля. То есть свойства из таблички. Например: В этом случае, в коллекции - рекордсетэ - можно обратится только к полям Name, FileSize. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Про API. http://frolov-lib.ru/books/bsp/v26/ch5_7.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 14:46:54 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, вот так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 14:48:37 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
искать перебором по колекции ни есть хорошо. тогда уж пройтись один раз и закинуть в рекордсет, итам искать поиск в рекордсете среди 700 000 записей - 2-3 сек насчет API - надо пробовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 15:04:45 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
вадяискать перебором по колекции ни есть хорошо. тогда уж пройтись один раз и закинуть в рекордсет, итам искать Ну так а условия в запросе на что? Это же всётаки SQL запрос, пусть и к своеобразной базе данных - файловой системе. вадяпоиск в рекордсете среди 700 000 записей - 2-3 сек Какой такой рэкордсэт и откуда он взялся? Кстати, а какой сервер. Не MS SQL 2005 Enterprise или Developer. Там Integration servise есть. Он позволяет прямо из среды SQL сервера обращаться к WMI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 15:25:35 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
И если у вас есть база с данными о файлах, так не логичнее буде ли считывать данные о файле с диска, и заносить их во временную табличку, а потом запрос на различия в таблицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 15:29:35 |
|
||
|
Поиск файлов
|
|||
|---|---|---|---|
|
#18+
вадя2Relic Hunter твой скрипт выполнялся более часа... какие настройки у системы должны быть, чтоб работало ? 1). Проверь включено-ли индексирование для диска. 2). В остнастке "Indexing Service" проверить статус индекса и его размер. Скорее всего индекс не успел еще построится поностью. На большом диске может занать продолжительное время. 3). Индексный поиск - самый быстрый. У мемя выполнается доли секунд. Ничего, что тут предложили быстрее быть не может по определению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2009, 20:33:14 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=36203231&tid=1501255]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
100ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 420ms |

| 0 / 0 |
