Главная страница
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.042 c
14-1126701635
oldman
2005-09-14 16:40
2005.10.09
Ребята, а давайте не передеогивать...


2-1124791012
Sepuka
2005-08-23 13:56
2005.10.09
принцип работы компонента ProgressBar


14-1126951777
YurikGL
2005-09-17 14:09
2005.10.09
Вступление России в ВТО - закрепление за Россией роли


14-1126623608
u-12
2005-09-13 19:00
2005.10.09
DNS-server


2-1125455507
Дырчик
2005-08-31 06:31
2005.10.09
Криптография