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

Вниз

DeleteFolder   Найти похожие ветки 

 
TStas ©   (2006-02-18 22:50) [0]

Не нашел, в каком модуле описана эта функция. Пробовал
if FindFirst(Path+"\*.*", faAnyFiles, SR)=0 then
repeat
if (sr.Name<>".") and (sr.Name<>"..") then
AssignFile(f, Path+"\"+sr.Name);
Erase(f);
until FindNext(sr)<>0
Так стараю сами файлы
А вот дальше не получается, папка ведь должна быть пустой, чтобы ее стереть. А как это выяснить? Наверно, от неприятностей на работе отупел


 
McSimm ©   (2006-02-19 01:25) [1]

DeleteFile(имя файла) - можно без AssignFile обойтись
Обходить возможно придется рекурсивно - вложенные папки.

Вот функция из RxLib

function ClearDir(const Path: string; Delete: Boolean): Boolean;
const
{$IFDEF WIN32}
 FileNotFound = 18;
{$ELSE}
 FileNotFound = -18;
{$ENDIF}
var
 FileInfo: TSearchRec;
 DosCode: Integer;
begin
 Result := DirExists(Path);
 if not Result then Exit;
 DosCode := FindFirst(NormalDir(Path) + "*.*", faAnyFile, FileInfo);
 try
   while DosCode = 0 do begin
     if (FileInfo.Name <> ".") and (FileInfo.Name <> "..") and (FileInfo.Attr <> faVolumeID) then
     begin
       if (FileInfo.Attr and faDirectory = faDirectory) then
         Result := ClearDir(NormalDir(Path) + FileInfo.Name, Delete) and Result
       else if (FileInfo.Attr and faVolumeID <> faVolumeID) then begin
         if (FileInfo.Attr and faReadOnly = faReadOnly) then
           FileSetAttr(NormalDir(Path) + FileInfo.Name, faArchive);
         Result := DeleteFile(NormalDir(Path) + FileInfo.Name) and Result;
       end;
     end;
     DosCode := FindNext(FileInfo);
   end;
 finally
   FindClose(FileInfo);
 end;
 if Delete and Result and (DosCode = FileNotFound) and
   not ((Length(Path) = 2) and (Path[2] = ":")) then
 begin
   RmDir(Path);
   Result := (IOResult = 0) and Result;
 end;
end;


 
Гаврила ©   (2006-02-19 11:40) [2]

Можно воспользоваться функцией ShFileOperation
она может удалить непустую папку, в том числе в корзину, в общем - там много вариантов, настраиваемых флагами



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
1-1138890546
kblc
2006-02-02 17:29
2006.03.05
Если не помогает WaitForSingleObject ...


2-1140302139
Volf_555
2006-02-19 01:35
2006.03.05
Как очистить TCanvas TImage?


15-1139650945
Yanis
2006-02-11 12:42
2006.03.05
Вот это война :)


2-1139956136
YuRock
2006-02-15 01:28
2006.03.05
Проблема с GetMem


3-1134547301
Alex_1234
2005-12-14 11:01
2006.03.05
TADOQuery, тип поля DATE, параметр ????