powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как удалить не пустой каталог на VBA
11 сообщений из 11, страница 1 из 1
Как удалить не пустой каталог на VBA
    #37174363
qqew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
задача: программно на VBA удалить каталог, содержащий файлы и подкаталоги

проблема: RmDir не удаляет каталог, если он не пустой. сначала нужно удалить все содержимое. написание кода для выполнения этих действий выглядит довольно сложным (для меня).

вопрос: есть ли у кого код процедуры, удаляющей каталог со всем содержимым? если есть, то не могли бы поделиться?
...
Рейтинг: 0 / 0
Как удалить не пустой каталог на VBA
    #37174384
qqew,
процедуры нет, есть идея, - отказаться от RmDir:
Код: plaintext
1.
2.
3.
Dim sPathToRemove$

sPathToRemove = "C:\temp\Папка для удаления содержащая файлы и(или) папки"
Shell "cmd /c rd /S/Q """ & sPathToRemove & """"
...
Рейтинг: 0 / 0
Как удалить не пустой каталог на VBA
    #37174398
qqew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо. работает.
...
Рейтинг: 0 / 0
Как удалить не пустой каталог на VBA
    #37174400
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй камнем, высший класс!! мне понравилось!!!
...
Рейтинг: 0 / 0
Как удалить не пустой каталог на VBA
    #37174502
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shell - это некошерно...
Sub DeleteAFolder(filespec)
Dim fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject
fso.DeleteFolder(filespec)
End Sub
...
Рейтинг: 0 / 0
Как удалить не пустой каталог на VBA
    #37174517
Akina,
при всём уважении, если в удаляемой папке присутствуют объекты с доступом readonly, Ваш код вылетает с Runtime error '70': Permission denied.

ЗЫ: если не затруднит, обоснуйте некошерность использования Shell.
...
Рейтинг: 0 / 0
Как удалить не пустой каталог на VBA
    #37174592
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaShell - это некошерно...
Лучше всего и этичнее всего использовать API.
Как удалить именно folder а не file через API -честно, не знаю.

Но чем использовать FileSystemObject...
Я раньше этим пользовался, но сейчас -нет и считаю это последним делом...
Здесь слава богу есть куча других более правильных методов.
Shell-это хорошо весьма и часто избавляет от километров подчас глючного некорректного кода.
использовать системные команды/утилиты виндов гораздо правильнее, надежнее и себе дешевле нежли связываться с VB-глючностями.
P.S. Это только мое мнение, переубеждать меня в этом вопросе бесполезно.
...
Рейтинг: 0 / 0
Как удалить не пустой каталог на VBA
    #37688892
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть-же команда rmdir .
...
Рейтинг: 0 / 0
Как удалить не пустой каталог на VBA
    #37688899
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не с начала читал, оказывается её уже упоминали
...
Рейтинг: 0 / 0
Как удалить не пустой каталог на VBA
    #37689125
странно, что никто не упомянул банальное удаление всех файлов в папке, открытие первой попавшейся папки, удаление всех файлов в ней и так далее, пока папка не окажется пустой. повторить в цикле для всех папок. или стандартные методы нынче не в моде?
...
Рейтинг: 0 / 0
Как удалить не пустой каталог на VBA
    #37689127
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй камнемесли в удаляемой папке присутствуют объекты с доступом readonly, Ваш код вылетает с Runtime error '70': Permission denied.
Добавьте ForceDelete...

пробуй камнемЗЫ: если не затруднит, обоснуйте некошерность использования Shell.
Shell выполняется асинхронно. Соответственно если последующий код рассчитывает, что операция, запрограммированная в Shell, выполнена (например, в данном случае сразу после удаления надо снова создать этот каталог) - необходимо отследить завершение, что не так уж и просто, или будут траблы.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как удалить не пустой каталог на VBA
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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