2010-11-29 38 views
5

Bazı kodları Linux'tan Windows'a taşımaya çalışıyorum. Windows hakkında pek bir şey bilmiyorum ve bu yüzden kör uçuyorum. mergedSegFile olduğu gibi, söz konusu kod, org.apache.commons.io.FileUtilsBu kod neden Windows'da ölüyor?

// If the mergesegs worked, delete the segment dirs 
    for (File file : segments.listFiles()) 
    { 
     if (!file.equals(mergedSegFile)) 
     { 
      LOG.debug("deleting segment dir " + file); 
      FileUtils.deleteDirectory(file); 
     } 
    } 

segments Dosya olan kullanarak bazı dizinleri silmek için çalışır. Bir IOException "Unable to delete file: c:\www\tomcat\crawls\test\TestingCode.site\crawldir\segments\20101128194700\parse_test\part-00000\data" ile ölür.

Bu dosyalar (bazı Nutch emekleme yapar) aynı programın bir önceki koşuyla yaratıldı. cygwin altında ls -l yapmak kullanıcı ve grup doğru gösterir, ancak Perma 000.

Daha bilgi şunlardır:

  • dir

    bana izinleri hakkında hiçbir şey söylemez.
  • Ben cygwin bash penceresinde bir cmd.exe pencere veya rm -rf üzerinde del dizini kaldırabilirsiniz.
  • Söz konusu dosyaları ve bulundukları dizin, aynı programın aynı vadede daha önce yaratıldı.
  • bilgisayar Windows 7'yi çalıştıran, bu yüzden o NTFS demektir varsayalım. Burada olasılıklar
+0

Belki de dizini silmeye çalışan program, ya da içindeki dosyaları kullanır? Dizini silen kodu çıkartın ve küçük bir sınama kodu oluşturun; bu, dizini komut satırı argümanı olarak alır ve siler. Çalışıyor mu? – khachik

+0

Belki Özel Durumun StackTrace'ında daha fazla bilgi edinebilir misiniz? – keuleJ

cevap

3

bol. Yolun kendisi kötü görünmüyor. En iyi seçeneğiniz, bu dizini bir komut isteminden el ile silmeye çalışmak ve hangi hatayı aldığınızı görmektir.

Kontrol edilecek:

  • bir uygulama tarafından kullanılıyor, dizin mi, yoksa içeriğinin herhangi?
  • dizin mi, ya da dosyaların herhangi salt okunur? (dir ile değil, ls ile kontrol edin).
  • Dizin veya dosyalarından herhangi birinin özel izinleri var mı ve siz bir yönetici değil misiniz?
  • Btw, bu NTFS, var mı?
+0

- Dosyayı "del" ile kaldırabilirim. –

+0

- dir bana izinler hakkında hiçbir şey söylemiyor. NTFS olduğunu sanıyorum - Windows 7 var. –

+0

"Veri" bir dosya mı yoksa bir dizin mi? Ayrıca herhangi bir özel izin var mı? – EboMike

İlgili konular