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
|