Klasör ve alt klasör silme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Klasör ve alt klasör silme
server da bulunan paylasima acik olan klasörün icindeki bir klasörü alt klasörleri ile birlikte nasil silebilirim? RMDIR ve REMOVEDIR ile sonuc alamadim...
kıdemsiz üye
Kod: Tümünü seç
procedure DelTree(StartDir: string);
var
Search : TSearchRec;
begin
if Startdir[Length(Startdir)] <> '\' then
startdir := startdir + '\';
if FindFirst(startdir + '*.*', faAnyFile, Search) = 0 then
repeat
if (Search.Name[1] <> '.' ) then
if ((Search.Attr and faDirectory) > 0) then
begin
RmDir(StartDir + Search.Name);
ChangeFAttrib(StartDir + Search.Name);
end else
begin
DeleteFile(StartDir + Search.Name);
Application.ProcessMessages;
end;
until FindNext(Search) <> 0;
FindClose(Search);
end;
-
- Üye
- Mesajlar: 99
- Kayıt: 24 Tem 2004 05:13
- Konum: kayseri
- İletişim:
ChangeFAttrib procedur oluşturamadım
ChangeFAttrib proceduru hakkında yardımcı olabilir misiniz
Kod: Tümünü seç
procedure ChangeFAttrib(dsy: String);
begin
FileSetAttr(dsy, faReadOnly or faSysFile);
end;
-
- Üye
- Mesajlar: 99
- Kayıt: 24 Tem 2004 05:13
- Konum: kayseri
- İletişim:
arkadaşım bu seferde Rmdir komutunda bir hata verdi bende bunu yerine şu komutu kullandım iş görüyor
hepinize yardımlarınızdan dolayı teşşkürler allah razı olusun kusuruma bakmayın
Kod: Tümünü seç
Uses Shellapi;
function dizinsil(FilesOrDir: string): boolean;
var
F: TSHFileOpStruct;
From: string;
Resultval: integer;
begin
FillChar(F, SizeOf(F), #0);
From := FilesOrDir + #0;
Screen.Cursor := crHourGlass;
try
F.wnd := 0;
F.wFunc := FO_DELETE;
F.pFrom := PChar(From);
F.pTo := nil;
F.fFlags := FOF_ALLOWUNDO or
FOF_NOCONFIRMATION or
FOF_SIMPLEPROGRESS or
FOF_FILESONLY;
F.fAnyOperationsAborted := False;
F.hNameMappings := nil;
Resultval := ShFileOperation(F);
Result := (ResultVal = 0);
finally
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//
dizinsil(edit1.text);
end;
Re: Klasör ve alt klasör silme
Herkese kolay gelsin.
Sormak istediğim bu yapılan silme işleminde ekranda uyarı bilgisi çıkıyor , daha doğrusu silindiğine dair işlem , bunun arka planda yapılması sağlanabilir mi ?
Sormak istediğim bu yapılan silme işleminde ekranda uyarı bilgisi çıkıyor , daha doğrusu silindiğine dair işlem , bunun arka planda yapılması sağlanabilir mi ?
Re: Klasör ve alt klasör silme
Windows 7 ve sonrası için alternatif bir seçenek olması açısından:
Yukarıdaki kod onay almadan silme işlemini gerçekleştirir. fFlags parametresi aşağıdaki şekilde farklı işlemler için kullanılabilir.
Yukarıdaki parametreleri birlikte kullanmak mümkündir. Örneğin;
Bu kodları Windows XP ile test etme şansım olmadı. Ancak çalışıyor olacağını düşünüyorum. Test edebilen birisi olur ise sonucu paylaşmasını rica ediyorum.
Kod: Tümünü seç
uses
ShellAPI;
procedure DeleteFolder(const AHandle: HWND; const FolderPath: string);
var
ShOp: TSHFileOpStruct;
begin
ShOp.Wnd := AHandle;
ShOp.wFunc := FO_DELETE;
ShOp.pFrom := PChar(FolderPath + #0);
ShOp.pTo := nil;
ShOp.fFlags := FOF_NO_UI;
SHFileOperation(ShOp);
end;
Kod: Tümünü seç
ShOp.fFlags := 0; // Windows silme işlemi için onay ister
ShOp.fFlags := FOF_NOCONFIRMATION; // Onay olmadan silme gerçekleşir. Ancak silme işlemi uzun sürer ise ekrana progress bar gösterir
ShOp.fFlags := FOF_ALLOWUNDO; // Silinen dosyalar Geri Dönüşüm Kutusu içine gönderilir.
Kod: Tümünü seç
ShOp.fFlags := FOF_NOCONFIRMATION or FOF_ALLOWUNDO; // Onay almaz, uzun işlemlerde progress bar gösterir, silinen dosyalar geri dönüşüm kutusuna taşınır
- greenegitim
- Üye
- Mesajlar: 713
- Kayıt: 28 Nis 2011 10:33
- Konum: İstanbul
Re: Klasör ve alt klasör silme
Teşekkürlergreenegitim yazdı:windows xp de çalışıyor.
Re: Klasör ve alt klasör silme
Teşekkürler.