Подскажите, как удалить все папки и файлы с корня диска? Если в функцию ниже передать букву диска, то ничего не происходит. Как исправить?
Спасибо.
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);
}
RemoveDir(DirName);
return true;
}