Форум: "Начинающим";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c