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
üzerindedel
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
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
Belki Özel Durumun StackTrace'ında daha fazla bilgi edinebilir misiniz? – keuleJ