deltree komutunun delphide eşdeğeri nasıl?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
deltree komutunun delphide eşdeğeri nasıl?
deltree komutunun delphide eşdeğeri nasıl?
yada alt klasörlerle ile tümü dosyaları silmek?
yada alt klasörlerle ile tümü dosyaları silmek?
Merhabalar...
- Bir ara lazım olmuştu... Uğraşmak zaman alıyordu. Internette bir yeden bulmuş, kolaylamıştım...
- Güzel çalışıyor...
- Başarılar...
- Bir ara lazım olmuştu... Uğraşmak zaman alıyordu. Internette bir yeden bulmuş, kolaylamıştım...
- Güzel çalışıyor...
Kod: Tümünü seç
procedure DelTree(const Directory: TFileName);
var
DrivesPathsBuff: array[0..1024] of char;
DrivesPaths: string;
len: longword;
ShortPath: array[0..MAX_PATH] of char;
dir: TFileName;
procedure rDelTree(const Directory: TFileName);
// Recursively deletes all files and directories
// inside the directory passed as parameter.
var
SearchRec: TSearchRec;
Attributes: LongWord;
ShortName, FullName: TFileName;
pname: pchar;
begin
if FindFirst(Directory + '*', faAnyFile and not faVolumeID,
SearchRec) = 0 then begin
try
repeat // Processes all files and directories
if SearchRec.FindData.cAlternateFileName[0] = #0 then
ShortName := SearchRec.Name
else
ShortName := SearchRec.FindData.cAlternateFileName;
FullName := Directory + ShortName;
if (SearchRec.Attr and faDirectory) <> 0 then begin
// It's a directory
if (ShortName <> '.') and (ShortName <> '..') then
rDelTree(FullName + '\');
end else begin
// It's a file
pname := PChar(FullName);
Attributes := GetFileAttributes(pname);
if Attributes = $FFFFFFFF then
raise EInOutError.Create(SysErrorMessage(GetLastError));
if (Attributes and FILE_ATTRIBUTE_READONLY) <> 0 then
SetFileAttributes(pname, Attributes and not
FILE_ATTRIBUTE_READONLY);
if Windows.DeleteFile(pname) = False then
raise EInOutError.Create(SysErrorMessage(GetLastError));
end;
until FindNext(SearchRec) <> 0;
except
FindClose(SearchRec);
raise;
end;
FindClose(SearchRec);
end;
if Pos(#0 + Directory + #0, DrivesPaths) = 0 then begin
// if not a root directory, remove it
pname := PChar(Directory);
Attributes := GetFileAttributes(pname);
if Attributes = $FFFFFFFF then
raise EInOutError.Create(SysErrorMessage(GetLastError));
if (Attributes and FILE_ATTRIBUTE_READONLY) <> 0 then
SetFileAttributes(pname, Attributes and not
FILE_ATTRIBUTE_READONLY);
if Windows.RemoveDirectory(pname) = False then begin
raise EInOutError.Create(SysErrorMessage(GetLastError));
end;
end;
end;
// ----------------
begin
DrivesPathsBuff[0] := #0;
len := GetLogicalDriveStrings(1022, @DrivesPathsBuff[1]);
if len = 0 then
raise EInOutError.Create(SysErrorMessage(GetLastError));
SetString(DrivesPaths, DrivesPathsBuff, len + 1);
DrivesPaths := Uppercase(DrivesPaths);
len := GetShortPathName(PChar(Directory), ShortPath, MAX_PATH);
if len = 0 then
raise EInOutError.Create(SysErrorMessage(GetLastError));
SetString(dir, ShortPath, len);
dir := Uppercase(dir);
rDelTree(IncludeTrailingBackslash(dir));
end;
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
SHFileOperation apisi ile gayet basit bir şekilde yapabilirsin.
http://msdn.microsoft.com/library/defau ... ration.asp
http://msdn.microsoft.com/library/defau ... struct.asp
örnek kodu toryy de bulabilirsin büyük ihtimal.
http://msdn.microsoft.com/library/defau ... ration.asp
http://msdn.microsoft.com/library/defau ... struct.asp
örnek kodu toryy de bulabilirsin büyük ihtimal.
Ben fazla seyretmediğim için reklam olayını bilemiyorum. belki de o da gerilime gerilim katmak için senaryonda olan bir durumdur
, geçen son dizilerinden biriydi sanırım, ormanda polat ı sıkıştırmışlardı ya.. kurşun ata ata bitiremediler
iki dk.da bir şarjör değiştiriyorlardi, mübarek ceket değil sanki cephane sandığı, baktım bunların cephanesi bitecek gibi değil ben de onları zapladım





Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
bunun kullanımı nasıl oluyor ?
mesela directory listbox ta görülen klasörleri silmek gibi
DBLclick olayına bunu nasıl ekleyebiliriz, eklersek olurmu
mesela directory listbox ta görülen klasörleri silmek gibi
DBLclick olayına bunu nasıl ekleyebiliriz, eklersek olurmu
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
Kod: Tümünü seç
Function DelTree(DirName : string): Boolean;
var
SHFileOpStruct : TSHFileOpStruct;
DirBuf : array [0..255] of char;
begin
try
Fillchar(SHFileOpStruct,Sizeof(SHFileOpStruct),0) ;
FillChar(DirBuf, Sizeof(DirBuf), 0 ) ;
StrPCopy(DirBuf, DirName) ;
with SHFileOpStruct do begin
Wnd := 0;
pFrom := @DirBuf;
wFunc := FO_DELETE;
fFlags := FOF_ALLOWUNDO;
fFlags := fFlags or FOF_NOCONFIRMATION;
fFlags := fFlags or FOF_SILENT;
end;
Result := (SHFileOperation(SHFileOpStruct) = 0) ;
except
Result := False;
end;
end;