Devilmanta Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 Şimdi sorum şu aşağıdaki kod bloğunda m_path yolundaki dosyaları tek tek siliyor ancak bazı dosyalar readonly yada kullanılıyor olduğunda hata veriyor. İşte bu adımda o dosyanın kullanımda yada read only olduğunu anlayıp bir soraki dosyadan silmeye devam etsin istiyorum ancak etmiyor bir dosyada hata veriyorsa diğerleri de silinmeden bekliyor. Varmıdır bir yolu? foreach (string dir in Directory.GetFiles(m_path)) { File.Delete(dir); m_progressBar.PerformStep(); } Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 try { File.Delete(dir); } catch { } Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Devilmanta Mesaj tarihi: Aralık 7, 2009 Konuyu açan Paylaş Mesaj tarihi: Aralık 7, 2009 Kojiroh said: try { File.Delete(dir); } catch { } bu sadece "şu hata alındı: hede hödö hatası" diyo geri kalanları silmeye devam etmiyor silme işlemini sonlandırıyor yanlış mı biliyorum? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 catch bloğunda hiçbi şey yaptırmıyosun ki bunda, durması için hiçbi sebep yok. catch'in içine bi break koysan tamam da, boş yani. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Devilmanta Mesaj tarihi: Aralık 7, 2009 Konuyu açan Paylaş Mesaj tarihi: Aralık 7, 2009 pekala zaten bu işlemi ben try catch içerisinde yapıyodum tryda üstte yazdığım catch te de şöyle bişey yer alıyodu bu silme işlemine hata verdikten sora devam etmesini durdurcak bişey değil sanırım. Yani bu try catch in silme işlemine devam etmesini sağlayan kod olduğunu sanmıyorum. catch (Exception ex) { MessageBox.Show(ex.Message); } Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 O verdiğin catch bloğunun da hiçbi şeyi durdurmaması lazım. Her hata çıktığında mesaj kutusu açmaktan başka bi şey yaptığı yok onun da. Eğer boş catch bloğuyla denediysen ve yine olmadıysa başka bi yerde bi sorun var demek ki. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mirage Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 Şunlar işine yarayabilir: http://bytes.com/topic/c-sharp/answers/270312-c-delete-directory-containing-read-only-files http://www.issociate.de/board/post/294912/What%27s_the_best_way_to_delete_read-only_files?.html http://stackoverflow.com/questions/265896/how-do-i-delete-a-read-only-file Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Devilmanta Mesaj tarihi: Aralık 7, 2009 Konuyu açan Paylaş Mesaj tarihi: Aralık 7, 2009 Pekala o zaman şöyle yenileyelim sormak istediğimi. Kullanımda olan yada readonly olan dosyaları silmesin onlar dursun bir soraki dosyayı silmeye devam etsin istiyorum. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 Sen denedin mi boş catch bloğuyla? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mirage Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 Catch bloğuna girdiği anda delete metodunda exception çıkmış demektir. Niye devam etsin ki? Daha iyi bir yol vardır ama aklıma ilk gelen şu: Rekursif olarak klasördeki tüm dosyaların flag'lerine bakcaksın, read-only olmayanları tek tek sileceksin. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
deadea Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 foreach (string dir in Directory.GetFiles(bidi)) { FileInfo fi = new FileInfo(dir); if (fi.IsReadOnly) MessageBox.Show("readyOnly müdür" ); else File.Delete(dir); } FileInfo class'ının isReadOnly property'si size dosyanın readonly olup olmadığını verir. Boolean tipindedir Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 Neden dursun ki, ben de onu anlamadım. try..catch bloğu bi döngünün içinde. Döngünün rastgele bi çevriminde read-only bi dosyaya denk geldi mi Delete metodu exception yaratcak, boş catch bloğu onu yakalayıp hiçbi şey yapmicak, sonraki adımdan yani progressbar'ı ilerletme kısmından devam edicek. Sonra döngünün bi sonraki çevrimine gircek. Ben mi yanlış kuruyorum kafamda anlamadım ki. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
deadea Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 eğer Exception varsa durur. ama boş catch {} bloğu olsaydı dewam ederdi. Exception oluştuğunda orada işlemi durdurup, ekrana "dosyaya ulaşılamadı" hatası verir. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
deadea Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 Yani Kojiroh'un dediği boş catch {} bloğu çalışır. Hatta test ettim çalışıyor. Ama Exception işin içine girdimi hata fırlatır Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 Ben de ufak bi program yazdım test etmek amaçlı, çalışıyo. Olay nası bu kadar uzadı ben onu anlamadım asıl. Read only olanlar silinmeyecekse dediğim yolla, silinecekse Mirage'ın linkini verdiği yolla yapıldı mı bitti. Read only'leri atlayacaksan: foreach (string dir in Directory.GetFiles(m_path)) { try { File.Delete(dir); } catch { } m_progressBar.PerformStep(); } Read only'ler de silinecekse (dosya kullanımdaysa silemeyeceğine göre delete metodunu yine try..catch içine al hatta): foreach (string dir in Directory.GetFiles(m_path)) { FileInfo finfo = new FileInfo(dir); finfo.IsReadOnly = false; try { File.Delete(dir); } catch { } m_progressBar.PerformStep(); } Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Devilmanta Mesaj tarihi: Aralık 7, 2009 Konuyu açan Paylaş Mesaj tarihi: Aralık 7, 2009 Catch bloğu boş olarak denedim program hiçbişey yapmıyor ama arka planda aynı tepkiyi veriyor catch i dolu olanla. Diyelim dosyalarını silmek istediğim klasörde 100 tane dosya var ve 50. dosya başka bir program tarafından kullanılıyor. işte bu dosyaları silmeye başlıyor 50 dosyaya geldiğinde program hata veriyor dosya kullanımda diye ve geri kalanlarıda silmiyor. 50 dosya halen duruyor o klasörde. Catch doluda olsa boşta olsa silme işlemini durduruyor. Programı sonlandırmıyor sadece silme işlemi duruyor. Catch doluyken hata verip duruyor boşken hata vermeden duruyor. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mirage Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 Kojiroh said: Neden dursun ki, ben de onu anlamadım. try..catch bloğu bi döngünün içinde. Döngünün rastgele bi çevriminde read-only bi dosyaya denk geldi mi Delete metodu exception yaratcak, boş catch bloğu onu yakalayıp hiçbi şey yapmicak, sonraki adımdan yani progressbar'ı ilerletme kısmından devam edicek. Sonra döngünün bi sonraki çevrimine gircek. Ben mi yanlış kuruyorum kafamda anlamadım ki. File.Delete(dir); satırını görünce ben Delete metodu klasörü silmeye çalışıyor sandım. Döngü tek tek bütün dosyalar üzerinde dönüyorsa boş catch bloğuyla da çalışır. Benim anlatmak istediğimle aynı kapıya çıkıyor. Edit: Devilmanta, try/catch'i döngünün içine koyduğuna emin misin? Bence sen dışına koymuşsun, exception çıkınca döngüden çıkıyorsun. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Devilmanta Mesaj tarihi: Aralık 7, 2009 Konuyu açan Paylaş Mesaj tarihi: Aralık 7, 2009 Did I say "YOU GUYS ARE AWESOME" ever? :) Çok sağolun ya ben trycatchi döngünün içine değil dışına koymuşum ^^ Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
wildpervert Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 resmen son zamanlardaki en güzel problemlerden biriydi ve çözüldü, donanım yazılıma sevgi saygı duyduk :D Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
deadea Mesaj tarihi: Aralık 7, 2009 Paylaş Mesaj tarihi: Aralık 7, 2009 peki using by another application'ı naptın? if le kontrol edicekmisin onuda? FileAccess enum'una bakmanı öneririm.. sanırım ordan oku yada yaz diyebiliyorsun direk. Access veriyorsun bir anlamda, ne yaparsa yapsın sil falan gibi. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Devilmanta Mesaj tarihi: Aralık 7, 2009 Konuyu açan Paylaş Mesaj tarihi: Aralık 7, 2009 başka sorularımla yine gelicem :P Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar