![]() |
|
Модераторы: Akina |
![]()
|
|
| alt5000 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 9.4.2006 Где: г. Выборг Репутация: нет Всего: нет |
Предлагаю подумать над, по моему , неразрешимой проблемой. Я, во всяком случае не могу вообще понять.... Есть форма, на которой 2 элемента: текстовое поле и кнопка.
Кнопка содержит следующий код:
Вся проблема в том, что программа выдает ошибку на строке RmDir. Пожалуйста, создайте модель в редакторе и посмотрите, в чем может быть загвоздка. Буду благодарен за помощь Это сообщение отредактировал(а) alt5000 - 31.1.2007, 11:56 |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
Если все написано правильно, папка не используется другими процессами и права пользователя позволяют ему удалить папку, значит папка не пуста.
-------------------- Я желаю всем Счастья! |
|||
|
||||
| alt5000 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 9.4.2006 Где: г. Выборг Репутация: нет Всего: нет |
В том - то все и дело, что оператор RmDir следует прямо за оператором kill, который убивает все файлы в этой папке. а он - то как раз выполняется успешно, следовательно, после него, в папке ничего не остается. Алгоритм - то прос: Если есть папка - удалить, если нет - создать Неужели не один я не могу с этим справиться?
|
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
А Kill может и не отработаться...
-------------------- Я желаю всем Счастья! |
|||
|
||||
| alt5000 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 9.4.2006 Где: г. Выборг Репутация: нет Всего: нет |
Я просматривал содержимое папки при пошаговом прохождении программы после kill. Результат - папка пуста!
|
|||
|
||||
| JusTalionis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
А не создается ли в той папке, автоматически, какой-нибудь скрытый файл, вроде desktop.ini ?
сделай паузу после kill, влезь во время этой паузы в папку при помощи другого процесса, например в ВинКоммандере, и проверь, пустая ли она в действительности, или нет? А какую именно ошибку показывает RMDIR? |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
А вручную удалить можеш ее?
-------------------- Я желаю всем Счастья! |
|||
|
||||
| alt5000 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 9.4.2006 Где: г. Выборг Репутация: нет Всего: нет |
Да, что я и делаю, после того как возникла ошибка, так как она возникает после kill, то dir не отрабатывается и для чистоты эксперимента я удаляю папку и запускаю программу снова Добавлено @ 16:32
RmDir вызывает ошибку 75 Path/file access ... Попробуйте в редакторе создать тогда может что-нить станет яснее, но согласитесь, ситуация парадоксальная. Алгоритм - то прост до безумия: Если есть папка - удалить. если нет - создать. Может обратиться в центр техподдержки? |
||||
|
|||||
| bom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 329 Регистрация: 22.2.2004 Где: Казахстан, Алматы Репутация: 4 Всего: 6 |
Помнится я уже давал полный код для подобной задачи с использованием FSO.
Если все же хочется удалять папку и вложенные (только файлы) используя RmDir, держи этот:
Это сообщение отредактировал(а) bom - 31.1.2007, 21:14 |
|||
|
||||
| JusTalionis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
А где есть центр такого профиля?
Кста, по моему личному опыту общения с различными техподдержками, думаю этот вопрос для них слишком сложен 75 - access denied? - это значит, объект находится в использовании программой, поэтому не может быть удален. после того, как она возникла, прога уже закрылась и освободила папку, поэтому ты и можешь ее удалить вручную. Ты попробуй во время паузы, пока ошибка еще не появилась. И проверь, нет ли там скрытого файла (лучше коммандером - Винда может не показать), скрытые kill не удаляет. |
|||
|
||||
| alt5000 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 9.4.2006 Где: г. Выборг Репутация: нет Всего: нет |
Access error! Добавлено @ 09:38
Огромное спасибо за код , он отлично работает |
||||
|
|||||
| JusTalionis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
alt5000
Проверил твой код. Под Win98 всё пашет; первое нажатие создает папку, второе ее удаляет. Но под XP получается тот самый глюк с ошибкой 75. Что бы это могло быть? Предположительно - XP пытается выполнить rmdir раньше, чем закончится kill. Для проверки вставляем паузу с контролем удаления между kill и rmdir. Получился следующий код:
- фокус-покус! Это сообщение отредактировал(а) cardinal - 2.2.2007, 01:37 |
|||
|
||||
| bom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 329 Регистрация: 22.2.2004 Где: Казахстан, Алматы Репутация: 4 Всего: 6 |
||||
|
||||
| JusTalionis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
bom
Нет, просто XP выполняет kill и rmdir как внешние процессы, то есть они выполняются параллельно, и kill не успевает удалить содержимое, вот и всё... Я вставил паузу (см выше) и всё заработало... ЗЫ по крайней мере, у меня )) |
|||
|
||||
| bom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 329 Регистрация: 22.2.2004 Где: Казахстан, Алматы Репутация: 4 Всего: 6 |
Действительно, работает... Похоже я не прав оказался. Так же дело и не в паузе: какую бы паузу (Sleep) не поставить вместо твоего цикла, access denied все равно остается Так же выяснил, что твой цикл не выполняется не разу (с помощью счетчика).
Позволю себе не согласиться. Эти функции VB в работающей программе выполняются последовательно. |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |