![]() |
текстовый файл с именами всех файлов в папке
Помогите пожалуйста составить код, который перечисляет в текстовом файле все файлы указанных папок.
То есть папок например может быть указано и три и семь. |
Цитата:
|
madmasles, указанных в самом скрипте.
Если можно, то пример с учетом подпапок и без учета. То есть я например указываю $Dir1 с учетом, $Dir2 без учета. Круто было бы если полный путь! |
socap,
Код:
$Dir = @ScriptDir & '\AutoIt' |
Цитата:
|
Спасибо! А как сделать так чтобы можно было ввести в скрипт например имя нескольких папок и все они были в этом текстовом файле?
|
Вот так еще можно
Код:
#include <File.au3> |
socap, до кучи
Только надо скачать это и положить файл FileOperations.au3 в папку "C:\Program Files\AutoIt3\Include" |
Так чем вам не нравится использование dir /B?
|
apozlevich, это не труЪ
|
Тогда надо использовать прямой доступ к секторам диска, вот это труъ труъ
|
apozlevich
1. сравни скорость 2. Сравни вывод. dir /B при маске "*.doc" выведет файлы "*.docx", а оно надо, для этого я введу "*.doc?" или "*.doc*" если это понадобится. |
AZJIO, *.doc не выведет .docx, маска "*.doc" означает "все, что заканчивается на .doc" и .docx к этому не подходит. Кстати, у топикстартера нет задачи вывести по маске.
Скорость? Я даже моргнуть не успел, а dir уже отработал. Зато насколько меньше кода... |
вот
http://autoit-script.ru/index.php/topic,5259.0.html я уже сталкивался с чем-то подобным... посмотри может пригодится... Я периодически использую (немного видоизмененную под свои нужды) |
AZJlO
Такой лаконичный код, спасибо. Но не работает маска по расширениям почему-то. Код:
#Include <FileOperations.au3> |
socap, должен работать, просто по умолчанию маска является полной, типа '*.exe|*.jpg|*.png', что позволяет использовать маску к примеру '*.in?|*.htm*|*.doc*'. Если необходимо использовать маску 'exe|jpg|png', то нужно указать параметр $iTypeMask=2 или $iTypeMask=0. Если что справка есть в самом UDF или здесь с подробным объяснением всех параметров, а они очень интересные (исключение/уровень вложенности/вид результата).
Там с UDF идёт в комплекте Gui, чтоб поиграть с параметрами. Вставляй путь, выбирай маску и смотри вывод. |
AZJIO, а можно ли сделать маску исключения файлов по папкам?
То есть указываешь большую директорию (с кучей файлов и подпапок), исключаешь пару папок и файлы из исключенных папок в поиск не попадают? И можно ли сделать маску по размеру файла? |
Цитата:
|
Цитата:
Например если добавить проверку в каждый запрос, то проверяется набор символов, при каждом запросе. Если сделать детект с помощью регулярного выражения, то скрипт будет обрабатывать этот каталог (холостой ход), потом вырезать ненужное. здесь специальную функцию лучше делать, дабы тем кому эта фича никогда не понадобилась не страдали. Вообще такая UDF уже есть, смотри _RecFileListToArray в справке, по ссылке выше, но у неё недостаток в том, что она указывает папку, а не относительный путь к папке, то есть если указать в исключения 'папка1;папка2' то все эти папки будут игнорироваться, а обычно требуется исключить конкретную папку, а не одноимённые. И второй недостаток - используется с ключами $iReturn = 0 и $iRecur = 1, то есть возвращает папки и файлы. Есть иной вариант _PathSearch, просто взять из неё регулярное выражение и с помощью него вырезать из результатов ненужные папки, примерно так Код:
#include <Array.au3> ; для _ArrayDisplay |
Цитата:
Но в текущем варианте либо ручная правка UDF под свои запросы, либо результаты прогнать повторно в цикле, сравнивая с указанным размером. Для этого в начале получить данные в массив, потом проверить размеры и соответственно исключить Код:
; Проверяем равенство и исключаем данные |
Время: 01:52. |
Время: 01:52.
© OSzone.net 2001-