Windows Temp Klasörü Silme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sadimba
Üye
Mesajlar: 14
Kayıt: 25 Tem 2017 12:36

Windows Temp Klasörü Silme

Mesaj gönderen sadimba »

Arkadaşlar Forum'da henüz yeniyim. Klasörlerle ilgili tüm konuları hemen hemen inceledim. Fakat çözüm bulamadım.
Sorunum Şu. Windows içindeki Temp klasörü ver ve içinde alt klasörler ve dosyalar var. Ben alt klasörleri silmek istiyorum. Yani Sil adını verdiğim butona tıkladığımda Temp klasörü içindeki alt klasörlerin silinmesini istiyorum. Forum içindeki klasör silme yöntemleri bunu gerçekleştirmiyor. Şu an Delphi 7 ve Win 7 kullanıyorum. Yardımcı olacak arkadaşlara şimdiden teşekkür ederim.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Windows Temp Klasörü Silme

Mesaj gönderen Lord_Ares »

Aslında sorunun cevabı basit fakat konuya farklı bakıyorsun. Dosya arama fonksiyonu kullanacaksın. Dosya arama fonksiyonunda bulunan eğer faDirectory ise sil diyeceksin. Aşağıdaki kodu deneme şansım şuan , sen deneyip kendine göre düzenlersin.

Kod: Tümünü seç


Function DosyalariBul(yol:string):integer;
var
bulundu:TSearchRec;
begin
result:=0;
if FindFirst(yol,faAnyFile,bulundu) = 0 then
begin
repeat
begin
if (bulundu.Attr AND faDirectory) > 0 then  begin


/// burada bulunan dosyayı silmesi için gereken kodun olacak


end else inc(Result);
end;
until (FindNext(bulundu) <> 0);
end;
FindClose(bulundu);
end;
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Windows Temp Klasörü Silme

Mesaj gönderen ertank »

Merhaba, Forum içinde birden fazla defa tartışılan bir konu. En son başlığa aşağıdaki bağlatıdan ulaşabilirsiniz.
viewtopic.php?f=2&t=9902
sadimba
Üye
Mesajlar: 14
Kayıt: 25 Tem 2017 12:36

Re: Windows Temp Klasörü Silme

Mesaj gönderen sadimba »

Function DosyalariBul ile dosyalar bulunsa da silinmiyor. Burada gerek windows temp gerekse prefetch dosyalarını silmek için yönetici izni almak gerektiğini bir yerde okudum. Function DosyalariBul silmek için ve function IsAdmin 'i ise yönetici izni için kullandım. uses WinSvc eklemek kaydıyla sonunda sorun çözüldü. Bilgi veren arkadaşlara çk teşekkür ederim. Belki bir nebze faydam olur diye IsAdmin function'unu yazdım.

function IsAdmin(Host : string = '') : Boolean;
var
H: SC_HANDLE;
begin
if Win32Platform <> VER_PLATFORM_WIN32_NT then
Result := True
else begin
H := OpenSCManager(PChar(Host), nil, SC_MANAGER_ALL_ACCESS);
Result := H <> 0;
if Result then
CloseServiceHandle(H);
end;
end;
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Windows Temp Klasörü Silme

Mesaj gönderen ertank »

Merhaba,

Kullandığınız Delphi sürümü son yayınlananlardan ise Project Options->Administrator kısmında Execution Level bölümünü "Require Administrator" yaparak admin yetkisi ile çalıştırabilirsiniz uygulamanızı. Bunu yaptıktan sonra IsAdmin() fonksiyonunu kullanmanıza gerek kalmayacaktır.
sadimba
Üye
Mesajlar: 14
Kayıt: 25 Tem 2017 12:36

Re: Windows Temp Klasörü Silme

Mesaj gönderen sadimba »

Sayın ertank
İlginiz için teşekkür ederim. Şu an kendimi biraz geliştirmek istiyorum. Bu nedenle kullandığım sürüm 7.0. Son sürümlerde oldukça güzel uygulamaların var olduğunu duymuştum. Ama bunun için henüz erken diye düşünüyorum. Tekrar teşekkür ediyorum.
Cevapla