|
Как удалить не пустой каталог на VBA
|
|||
---|---|---|---|
#18+
задача: программно на VBA удалить каталог, содержащий файлы и подкаталоги проблема: RmDir не удаляет каталог, если он не пустой. сначала нужно удалить все содержимое. написание кода для выполнения этих действий выглядит довольно сложным (для меня). вопрос: есть ли у кого код процедуры, удаляющей каталог со всем содержимым? если есть, то не могли бы поделиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2011, 18:31 |
|
Как удалить не пустой каталог на VBA
|
|||
---|---|---|---|
#18+
qqew, процедуры нет, есть идея, - отказаться от RmDir: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2011, 18:58 |
|
Как удалить не пустой каталог на VBA
|
|||
---|---|---|---|
#18+
спасибо. работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2011, 19:15 |
|
Как удалить не пустой каталог на VBA
|
|||
---|---|---|---|
#18+
пробуй камнем, высший класс!! мне понравилось!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2011, 19:16 |
|
Как удалить не пустой каталог на VBA
|
|||
---|---|---|---|
#18+
Shell - это некошерно... Sub DeleteAFolder(filespec) Dim fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject fso.DeleteFolder(filespec) End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2011, 21:36 |
|
Как удалить не пустой каталог на VBA
|
|||
---|---|---|---|
#18+
Akina, при всём уважении, если в удаляемой папке присутствуют объекты с доступом readonly, Ваш код вылетает с Runtime error '70': Permission denied. ЗЫ: если не затруднит, обоснуйте некошерность использования Shell. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2011, 21:50 |
|
Как удалить не пустой каталог на VBA
|
|||
---|---|---|---|
#18+
AkinaShell - это некошерно... Лучше всего и этичнее всего использовать API. Как удалить именно folder а не file через API -честно, не знаю. Но чем использовать FileSystemObject... Я раньше этим пользовался, но сейчас -нет и считаю это последним делом... Здесь слава богу есть куча других более правильных методов. Shell-это хорошо весьма и часто избавляет от километров подчас глючного некорректного кода. использовать системные команды/утилиты виндов гораздо правильнее, надежнее и себе дешевле нежли связываться с VB-глючностями. P.S. Это только мое мнение, переубеждать меня в этом вопросе бесполезно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2011, 01:05 |
|
Как удалить не пустой каталог на VBA
|
|||
---|---|---|---|
#18+
Есть-же команда rmdir . ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2012, 17:06 |
|
Как удалить не пустой каталог на VBA
|
|||
---|---|---|---|
#18+
не с начала читал, оказывается её уже упоминали ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2012, 17:08 |
|
Как удалить не пустой каталог на VBA
|
|||
---|---|---|---|
#18+
странно, что никто не упомянул банальное удаление всех файлов в папке, открытие первой попавшейся папки, удаление всех файлов в ней и так далее, пока папка не окажется пустой. повторить в цикле для всех папок. или стандартные методы нынче не в моде? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2012, 19:15 |
|
Как удалить не пустой каталог на VBA
|
|||
---|---|---|---|
#18+
пробуй камнемесли в удаляемой папке присутствуют объекты с доступом readonly, Ваш код вылетает с Runtime error '70': Permission denied. Добавьте ForceDelete... пробуй камнемЗЫ: если не затруднит, обоснуйте некошерность использования Shell. Shell выполняется асинхронно. Соответственно если последующий код рассчитывает, что операция, запрограммированная в Shell, выполнена (например, в данном случае сразу после удаления надо снова создать этот каталог) - необходимо отследить завершение, что не так уж и просто, или будут траблы. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2012, 19:19 |
|
|
start [/forum/topic.php?fid=60&fpage=84&tid=2158033]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 317ms |
total: | 445ms |
0 / 0 |