Russian Qt Forum
Ноябрь 24, 2024, 17:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Рекурсивное удаление  (Прочитано 4743 раз)
sclown
Гость
« : Июль 15, 2007, 15:31 »

Как рекурсивно удалить каталог?
Записан
-=s0L=-
Гость
« Ответ #1 : Июль 15, 2007, 17:31 »

Цитата: "sclown"
Как рекурсивно удалить каталог?


запустить для этого стандартную утилиту "rm -rf dir"
Записан
QCasper
Гость
« Ответ #2 : Июль 16, 2007, 08:35 »

Цитата: "-=s0L=-"
Запустить для этого стандартную утилиту "rm -rf dir"


Особенно под win32 Подмигивающий
Записан
-=s0L=-
Гость
« Ответ #3 : Июль 16, 2007, 10:15 »

Цитата: "QCasper"
Цитата: "-=s0L=-"
Запустить для этого стандартную утилиту "rm -rf dir"


Особенно под win32 Подмигивающий


ну тогда так "rmdir /S dir", но лучше средствами Qt это делать Улыбающийся
Записан
Sergeich
Гость
« Ответ #4 : Июль 16, 2007, 12:32 »

Код:
bool deleteDir( const QString& dirName )
{
QDir dir(dirName);
QStringList dirList = dir.entryList( QDir::Dirs | QDir::NoDotAndDotDot );
QStringList fileList = dir.entryList( QDir::Files );
   QStringList::ConstIterator it;

for ( it = dirList.begin(); it != dirList.end(); ++it ) {
if ( !deleteDir( dir.absoluteFilePath(*it) ) )
return false;
}
for ( it = fileList.begin(); it != fileList.end(); ++it ) {
if ( !dir.remove( *it ) )
return false;
}
dir.refresh();
if ( dir.entryList(QDir::NoDotAndDotDot).count() == 0 ) {
QDir d(dir);
d.cdUp();
if ( !d.rmdir( dirName ) )
return false;
}
return true;
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 20.