Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1140011423
Ice
2006-02-15 16:50
2006.03.05
Виртуальный TCanvas и его фоновый цвет...


3-1137151906
Николай_2006
2006-01-13 14:31
2006.03.05
Проблема с хранимыми процедурами в Delphi 2006


2-1139827479
ЧихПых )) ЫЫ
2006-02-13 13:44
2006.03.05
Максимальное значение из ADOQuery


1-1138275877
Silver...
2006-01-26 14:44
2006.03.05
TFrame и событие "OnPaint"


1-1138421486
вурдалак
2006-01-28 07:11
2006.03.05
Плавный GrayScale...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский