2011-09-22 29 views
10

Java'da File.mkdir() veya File.mkdirs() yöntemlerinden birini çağırırsam ve false döndürürse, dizinin neden oluşturulmadığını öğrenmenin bir yolu var mı?File.mkdirs() hatasının nedenini keşfetme

+2

Neden mkdir() 'nin neden yapıldığını (her zaman benim için bir sorun değil) tasarladığını merak ettim. – NPE

+1

'delete()' ile aynı, sadece bir boole döndürür. Bir "SecurityException" değilse, bir şeyin neden başarısız olduğunu gösteren bir gösterge yok. –

cevap

4

Pek değil, hayır. Bir SecurityException atılmıyorsa, en olası neden yoldaki bir yazım hatasıdır; bu, bir şekilde geçersiz olan yeni dizinlerin bir üst yolunu yanlışlıkla belirlediğiniz anlamına gelir. Eğer atılan bir SecurityException farkında değilsiniz nerede SecurityException atası alıcı çünkü

Yaptığın,, bunun try { ... } catch (Exception e) blokta sarılmış olduğunu sanmıyorum?

Her şeyin doğru göründüğüne dair yüksek bir inancınız varsa ve hala başarısız olursa, bunu tekrar tekrar denemek için üç kez tekrar atabileceğinizi varsayalım. Eğer hala başarısız olursa ve uygulamanıza bağlı olarak, UI düzeyinde bir çeşit uyarı oluşturabilir veya hatayı bir günlük dosyasına kaydedebilirsiniz (yazabilirsiniz).

Bazı daha derin G/Ç sorununun çalışmasını engelliyor olabileceğini, ancak bir başarısızlık kullanıcısını kolayca bildirmenin ötesinde bir uygulama düzeyinde yapabileceğiniz (veya gerçekten yapmanız gereken) fazla bir şey olmadığını varsayalım. G/Ç yanlışında daha derin bir şey varsa, sistem/donanım/işletim sistemi ile ilgili bir sorun ya da alt sistem/hizmet çökmesi gibi bir denetiminiz olmadığından tamamen başarısız bir şeydir.

... ve bu gerçekleşiyorsa, bu sizin uygulamanız için değil, düzeltmesi gereken BT adamının sorumluluğundadır. Elbette uygulamanız bir şekilde çökmeye neden oluyor.

+2

Hayır, durum böyle değildi. Sorunu (ana dizinin bir kümenin bir düğümünde yanlış sahibi olduğunu) keşfettim, ancak başka bir yere gitmem gerekti, ağ yöneticisiyle konuşmam gerekti, birisi bana bir ssh oturumu vermesini istedi ve sonunda mkdir benim/hatalı/yol '. Bunu yapmanın daha pratik bir yolunu ümit ettim ... – brandizzi

+0

İşte işte - IT adam problemi. :) – jefflunt

+1

Haha, kesin olarak :) ama Java da yardımcı olmadı ... – brandizzi

İlgili konular