Delphi Can
DeleteFile Sorunu - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: DeleteFile Sorunu (/showthread.php?tid=5621)



DeleteFile Sorunu - ermanispir@gmail.com - 04-01-2021

Merhaba, 
Bir projede DeleteFile(dosyaadi)  kullanıyorum, bu komut çalıştıktan sonra çalıştırdığım tüm thread ' ler donuyor ve bilgisayarımı kilitliyor, fişini çekmek suretiyle yeniden açmak zorunda kalıyorum.

deletefile komutunu thread içinde ve dışında denedim, eğer thread çalışmadan önce deletefile çalışmışsa thread kilitleniyor, 
her seferinde aynı problem.

Sizce sorun ne olabilir ?


DeleteFile Sorunu - mcuyan - 05-01-2021

acaba silmeye çalıştığınız folder'da yetkilendirme de sorun olabilir mi? mesela win10 da C anadizine erişimde sorun yaşarsınız. uygulamayı yönetici olarak çalıştırıp bir denermisiniz.


DeleteFile Sorunu - engerex - 06-01-2021

DeleteFile komutu geçiyor. Antivirüs ile alakalı olabilir mi? Bir ara DeleteFile komutu ile bir kaç dosya silince antivirüs uygulamamı silmişti.


Cvp: DeleteFile Sorunu - Halil Han BADEM - 07-01-2021

(04-01-2021, Saat: 10:58)ermanispir@gmail.com Adlı Kullanıcıdan Alıntı: Merhaba, 
Bir projede DeleteFile(dosyaadi)  kullanıyorum, bu komut çalıştıktan sonra çalıştırdığım tüm thread ' ler donuyor ve bilgisayarımı kilitliyor, fişini çekmek suretiyle yeniden açmak zorunda kalıyorum.

deletefile komutunu thread içinde ve dışında denedim, eğer thread çalışmadan önce deletefile çalışmışsa thread kilitleniyor, 
her seferinde aynı problem.

Sizce sorun ne olabilir ?


uses
ShellApi
...
function DeleteFile(FileName: String): Boolean;
begin
 try
  ShellExecute(handle, 'open', 'cmd.exe', pChar('/c cd "'+ ExtractFilePath(FileName) + '"&&del ' + ExtractFileName(FileName)) nil, sw_hide);
  Result := True;
 except
  Result := False; 
 end;
end;

Tamamı ile formun kod editörü ile yazdım. O yüzden hatalar olabilir. /c'ye gerek var mı bilmiyorum ama bazen cmd.exe komutu almak için bu parametreye ihtiyaç duyuyor. DeleteFile olarak bunu kullanabilirsiniz. Hatta isterseniz (*.txt) şeklinde masklar ile direkt silme işlemi yapabilirsiniz. Bunu kullanıp test edin veya sizin kullandığınız fonksiyonu Thread içinde TThread.Synchronize şeklinde çağırarak kullanınız. Tabi bu bir olasılık reel çözüm olmayadabilir.

Kodda hata olabilir tekrar hatırlatayım çünkü Delphi kurulu bir bilgisayarda değilim...


DeleteFile Sorunu - ermanispir@gmail.com - 07-01-2021

Herkese cevapları için teşekkürler, buradaki söylenilen her yöntemi denedim lakin sonuç hep aynı, thread'in shellapi ile kişisel bir sorunu olduğunu düşünüyorum artık, shellapi yi eğer kullanmışsam thread kilitleniyor, hatta bilgisayarımı kilitliyor.


DeleteFile Sorunu - vkamadan - 07-01-2021

Merhaba ,
Thread içinden kullanımda ShellExecute ve ShellExecuteEx kullanımı öncesi CoInitializeEx in uygun şekilde çağrılması gerekir diyor bu makalede https://stackoverflow.com/questions/4310449/is-there-any-problem-to-using-this-code-in-a-thread-delphi inceleyip denemenizi öneririm.


Cvp: DeleteFile Sorunu - ermanispir@gmail.com - 08-01-2021

(07-01-2021, Saat: 13:43)vkamadan Adlı Kullanıcıdan Alıntı: Merhaba ,
Thread içinden kullanımda ShellExecute ve ShellExecuteEx  kullanımı öncesi CoInitializeEx in uygun şekilde çağrılması gerekir diyor bu makalede https://stackoverflow.com/questions/4310449/is-there-any-problem-to-using-this-code-in-a-thread-delphi inceleyip denemenizi öneririm.

evet usta , inşallah erken konuşmuyorumdur ama sanırım oldu Smile
Teşekkürler.