Thread overview
Toplu dosya silerken hata oluşuyor
Dec 20, 2016
zafer
Dec 20, 2016
erdem
Dec 22, 2016
zafer
December 20, 2016

Merhaba,

Bir klasöürdeki bir kaç dosyayı silmek istiyorum bunun için aşağıdaki gibi bir kod yazdım.

..

foreach (string dosya; dirEntries(adres, SpanMode.breadth))
{
   remove(dosya);
}

Derleme esnasında bir hata yok ancak kod çalıştıktan sonra klasördeki ilk dosyayı siliyor sonra aşğıdaki hatayı veriyor. Sebebi ne olabilir?

Alıntı:

>

object.Exception@std/file.d(3148): Failed to stat file `/media/depo/Projeler/d/test/resim_60x60.jpg'

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 21, 2016

Ali beyin gösterdiği zincirleme yöntem bende çalıştı.

   ("yerel/")
       .dirEntries(SpanMode.depth)
       .filter!(kütük => kütük.extension == ".html")
       .each!remove;

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 21, 2016

dirEntries'de hatalar var: dosya erişim hakları, bozuk symbolic link, vs. durumlarda hata atabiliyor. Bunların bazıları mantıklı olsa da, işin kötüsü bu hatalar foreach'in ilerleyişi sırasında atıldığından try-catch ile de yakalanamıyor. Yine de remove()'un etrafına try-catch eklemeyi deneyebilirsin. Ama herhalde bir dirEntries hatası... Şimdilik şunlar var:

https://issues.dlang.org/buglist.cgi?quicksearch=direntries&list_id=212484

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 22, 2016

Teşekkürler, ben çözüm olarak birinci foreach ile sileceğim dosyaları bir diziye ekledim. Sonra ikinci bir foreach döngüsü ile bu dizi üzerinde ilerleyerek gerekli dosyaları sildim. Ancak Erdem'in kodları çok daha zarif ve güzel görünüyor. Sanırım onları kullanacağım.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]