Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.09;
Скачать: CL | DM;

Вниз

Удаление пустого каталога   Найти похожие ветки 

 
Bios_   (2005-08-10 20:55) [0]

Я использую след. код:
SetFileAttr(DirName, faArchive);
RemoveDirectory(DirName) или RMDir(DirName);

В принципе он работает, но некоторые каталоги, как "не бейся",
не удаляются. Хотя DiscoComander с этим справляется.
Каталог точно пустой.
Кто нибудь знает в чем дело? Очень нужно!


 
begin...end ©   (2005-08-10 21:08) [1]

> Bios_   (10.08.05 20:55)

> Кто нибудь знает в чем дело?

Об этом может сказать GetLastError, вызванный после неудачной попытки удаления с помощью RmDir или RemoveDirectory.


 
Kazakh   (2005-08-11 10:22) [2]

function MyRemoveDir(sDir : string) : Boolean;
var
 iIndex: Integer;
 SearchRec: TSearchRec;
 sFileName: string;
begin
 Result := False;
 sDir := sDir + "\*.*";
 iIndex := FindFirst(sDir, faAnyFile, SearchRec);

 while iIndex = 0 do
 begin
   sFileName := ExtractFileDir(sDir)+"\"+SearchRec.name;
   if SearchRec.Attr = faDirectory then
   begin
     if (SearchRec.name <> "" ) and (SearchRec.name <> ".") and
     (SearchRec.name <> "..") then
       MyRemoveDir(sFileName);
   end
   else
   begin
     if SearchRec.Attr <> faArchive then
       FileSetAttr(sFileName, faArchive);
     if not DeleteFile(sFileName) then
       ShowMessage("Could NOT delete " + sFileName);
   end;
   iIndex := FindNext(SearchRec);
 end;

 FindClose(SearchRec);
 RemoveDir(ExtractFileDir(sDir));
 Result := True;
end;

// ***************************** //
//           Пример:             //
// ***************************** //
if not MyRemoveDir("D:\myDir") then
 ShowMessage("Can NOT delete dir");

// Кстати, системные, скрытые и
// read-only файлы тоже будут удалены.



Страницы: 1 вся ветка

Текущий архив: 2005.10.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
2-1125054811
Теплый снег
2005-08-26 15:13
2005.10.09
Работа со строками


2-1125092598
toma
2005-08-27 01:43
2005.10.09
SaveDialog


14-1126941471
Sergey_Masloff
2005-09-17 11:17
2005.10.09
Обладатели КПК дайте совет что купить


6-1118748923
atmospheric
2005-06-14 15:35
2005.10.09
Отправка сообщения конкретному клиенту?


14-1127143653
Андрей Жук
2005-09-19 19:27
2005.10.09
А как можно использовать блок питания AT?