![]() |
|
Модераторы: Akina |
![]()
|
|
| bankuss |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 26.3.2004 Репутация: 3 Всего: 4 |
Вобщем делаю прогу которая автоматом переносит файлы с сетевого диска на хард.
На сетевом диске есть директория с файлами, а также в этой директории есть поддиректории (тоже с файлами) ну типа K:\файлы и K:\SYS\файлы итд Если делать просто DIR() то я получаю только файлы на K:\ А если сделать DIR с атрибутом directory я получаю имя поддиректории SYS. Теперь чтоб получить имя файла в SYS вызываю DIR с путем SYS и все ок, имена файлов из поддиректории SYS считываются. Но как получить имя следующей поддиректории, ведь DIR уже считал имя файла, то есть, при вызове DIR с атрибутом directory я снова получаю SYS а мне нужен следующий подкаталог! Если сразу вызвать DIR с атриб. directory то он считывает все подряд: и файлы и поддиректории, но поддиректории он считывает не так, как мне нужно т.е. возвращяет просто имя SYS без слэша и именен файлов... Может кто разбирался с этими функциями? Как лучше сделать код? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Делаем подпрограмму (или функцию), которая принимает путь. Сперва она делает CHDIR по указаннному пути, потом DIR для получения списка файлов, затем DIR для получения списка подкаталогов, и наконец для каждого из полученных подкаталогов вызвать себя же, передав в качестве параметра подкаталог. Обычная рекурсия, короче...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bankuss |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 26.3.2004 Репутация: 3 Всего: 4 |
Маловероятно что это будет работать.... так как DIR вначале должен вызываться с параметром пути, а затем, чтоб получить следующее имя - без параметров, а если его постоянно вызывать с параметром пути то и имя файла всегда будет одно и то же (первое), а без параметра пути первый раз DIR вызывать нельзя....
я уже пробовал подобным образом все это в цикле сделать, но как написал выше, ничего невышло... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
bankuss
Здравствуй, милая моя! я тебе что, свою функцию DIR вместо системной предлагаю писАть? Сперва ты из текущего каталога выгребаешь по одному все файлы и все подкаталоги и только после этого начинаешь рекурсивный обход подкаталогов - которые ты нагреб в локальный массив. Это сообщение отредактировал(а) Akina - 14.5.2004, 11:12 -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bankuss |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 26.3.2004 Репутация: 3 Всего: 4 |
ты имеешь ввиду имена поддиректорий складывать в строковый массив, а потом их "приклеивать" к пути и цеплять оттуда файлы?
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
bankuss
Угусеньки. Типа так:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bankuss |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 26.3.2004 Репутация: 3 Всего: 4 |
а уже так думал сделать
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Тьфу, блин, совсем ты меня запутал... и я тоже.
Короче так: код выше похерить, идею оставить. Сканирование делаем не 2 раза, а один, с атрибутом vbDirectory, и сразу сортируем на файлы и подкаталоги. Файлы выводим, подкаталоги суем в массив. Закончив обработку каталога, начинаем рекурсивный вызов для каждого подкаталога. Остальное верно...
Это сообщение отредактировал(а) Akina - 14.5.2004, 12:19 -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bankuss |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 26.3.2004 Репутация: 3 Всего: 4 |
я тоже к этому пришел
Но тогда как отличить - каталог это или файл? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bankuss |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 26.3.2004 Репутация: 3 Всего: 4 |
с небольшими модернизациями и доработками все заработало...
Добавлено @ 13:09 и еще а можно ли сделать, чтоб копируемые файлы сжимались в zip? Я где то читал что есть dll зиповая, которую можно юзать в своих прогах |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
bankuss, еще тут можешь почитать по поводу первого вопроса:
http://forum.vingrad.ru/index.php?showtopic=9458 А по поводу второго задай вопрос отдельно- таковы правила. Ты их читал? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |