Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Удаление всех файлов из папки

378
02 мая 2007 года
KurL
171 / / 01.08.2005
Можно ли удалить все файлы из папки, не перебирая их по одному? (используем шестой вижал)
263
03 мая 2007 года
koltaviy
816 / / 16.12.2004
1) Запомни имя папки
2) Удали папку
3) Создай папку с запомненным именем заново
378
03 мая 2007 года
KurL
171 / / 01.08.2005
... и чтоб второй топ не заводить
почему, когда я ищу файлы *.* сначала находятся "." и ".."?
240
03 мая 2007 года
aks
2.5K / / 14.07.2006
А почему бы и нет? Еслиб они находились в самом конце что то бы изменилось? так утроенна система/функция поиска.
1
03 мая 2007 года
kot_
7.3K / / 20.01.2000
Цитата: koltaviy
1) Запомни имя папки
2) Удали папку
3) Создай папку с запомненным именем заново


мммм. а можна пример? в смысле работающий код? Потому как SHFileOperation обычно для этого юзается - но в таком случае никакой необходимости удалять папку нет, а вот удаление папки с файлами... или это было просто лишь бы сказать?

Цитата:
.. и чтоб второй топ не заводить
почему, когда я ищу файлы *.* сначала находятся "." и ".."?


потому что ты ищешь все объекты. Добавь в код поиска проверку на директорию и получай только файлы

1.8K
05 мая 2007 года
Death Knight
139 / / 19.02.2006
если использовать стандартные функции то папка вроде не удалиться если в ней есть файлы. А что тебе мешает удалить вызывая команды командной строки т. е. можнол исп функцию system или exec допустим нам надо удалить все файлы из папки C:\windows\temp
будет примерно след код
system("c:");
system("cd \");
system("cd windows");
system("cd temp");
system("del *.* /f /s /q");
255
05 мая 2007 года
Dart Bobr
1.4K / / 09.04.2004
Цитата: KurL
... и чтоб второй топ не заводить
почему, когда я ищу файлы *.* сначала находятся "." и ".."?


потому-что FindFirstFile/FindNextFile проходят по таблице фат. а для каждой под-папки там 2 первіе записи - это "." и "..". Первая запись нужна для верификации содержимого подпапки с ее записью в паке на уровень выше. То-есть грубо говоря она указывает сама на себя. Вторая запись - указывает на родительский элемент.

263
06 мая 2007 года
koltaviy
816 / / 16.12.2004
Цитата: kot_
мммм. а можна пример? в смысле работающий код? Потому как SHFileOperation обычно для этого юзается - но в таком случае никакой необходимости удалять папку нет, а вот удаление папки с файлами... или это было просто лишь бы сказать?


Я не думал, что RemoveDir и RemoveDirectory работают только с пустыми папками.:confused: Так что извиняйте. Оказалось не все так просто.
В принципе согласен с Death Knight насчет использования коммандной строки.
Только поправочка:

 
Код:
..
system( "cd c:\windows" );
system( "rmdir /s/q Temp" );
system( "mkdir Temp" );
..

Это позволит удалить также все вложенные каталоги. Иначе будут удалены только все файлы во вложенных каталогах, но не сами каталоги!
Получается:
1) Запоминаем имя папки(если можно так сказать)
2) Удаляем ее
3) Создаем заново
1
06 мая 2007 года
kot_
7.3K / / 20.01.2000
Цитата: koltaviy
Я не думал, что RemoveDir и RemoveDirectory работают только с пустыми папками.:confused: Так что извиняйте. Оказалось не все так просто.
В принципе согласен с Death Knight насчет использования коммандной строки.
Только поправочка:
 
Код:
..
system( "cd c:\windows" );
system( "rmdir /s/q Temp" );
system( "mkdir Temp" );
..

Это позволит удалить также все вложенные каталоги. Иначе будут удалены только все файлы во вложенных каталогах, но не сами каталоги!
Получается:
1) Запоминаем имя папки(если можно так сказать)
2) Удаляем ее
3) Создаем заново


Ну так в принципе верно. Но чем не подходит:

 
Код:
SHFILEOPSTRUCT sh;
ZeroMemory(&sh, sizeof(SHFILEOPSTRUCT));
sh.pFrom = "c:\\test1\\*.*\0";
sh.fFlags = FOF_FILESONLY|FOF_NOCONFIRMATION;
sh.wFunc = FO_DELETE;
SHFileOperation(&sh);

использование командной строки - это зачастую потенциально путь к ошибкам и нарушениям политики безопасности
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог