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.
Windows Temp Klasörü Silme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Windows Temp Klasörü Silme
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;
Re: Windows Temp Klasörü Silme
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
viewtopic.php?f=2&t=9902
Re: Windows Temp Klasörü Silme
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;
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;
Re: Windows Temp Klasörü Silme
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.
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.
Re: Windows Temp Klasörü Silme
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.
İ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.