Главная / FAQ по Builder'у / 181 Функция, удаляющая папку и все файлы...

181 Функция, удаляющая папку и все файлы в ней.



bool DeleteDir( AnsiString DirName ) {
  TSearchRec sr;
  if ( DirName.Length() ) {
    if (!FindFirst(DirName+"\\*.*",faAnyFile,sr))
      do {
        if (!(sr.Name=="." || sr.Name=="..")) // это удалять не надо
          if (((sr.Attr & faDirectory) == faDirectory ) ||
                               (sr.Attr == faDirectory)) // найдена папка
          {
            FileSetAttr(DirName+"\\"+sr.Name, faDirectory ); // сброс всяких
                                                          // read-only
            DeleteDir(DirName+"\\"+sr.Name); //рекурсивно удаляем содержимое
            RemoveDir(DirName + "\\"+sr.Name); // удаляем теперь уже пустую
                                                                    // папку
          }
          else        // иначе найден файл
          {
            FileSetAttr(DirName+"\\"+sr.Name, 0); // сброс всяких read-only
            DeleteFile(DirName+"\\"+sr.Name); // удаляем файл
          }
      }
       while (!FindNext(sr)); // ищем опять, пока не найдем все
  FindClose(sr);
  }
  return true;
}

Alexeev Pavel

Предыдущий вопрос   |  Список вопросов   |   Следующий вопрос

источник      На главную      by jenyok
Copyright © 2003 JTSOFT
Сайт управляется системой uCoz