मैं लिनक्स से विंडोज तक कुछ कोड पोर्ट करने की कोशिश कर रहा हूं। मैं वास्तव में विंडोज के बारे में ज्यादा नहीं जानता, और इसलिए मैं अंधा उड़ रहा हूं। सवाल में कोड, org.apache.commons.io.FileUtilsयह कोड विंडोज पर क्यों मर रहा है?
// 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
एक फ़ाइल है का उपयोग कर कुछ निर्देशिकाओं को नष्ट करने का प्रयास के रूप में mergedSegFile
है। यह IOException "Unable to delete file: c:\www\tomcat\crawls\test\TestingCode.site\crawldir\segments\20101128194700\parse_test\part-00000\data"
के साथ मर जाता है।
ये फ़ाइलें उसी प्रोग्राम के पिछले भाग द्वारा बनाई गई थीं (जो कुछ नच क्रॉलिंग करती है)। cygwin के तहत एक ls -l
कर चलता उपयोगकर्ता और समूह सही हैं, लेकिन perms 000
आगे की जानकारी कर रहे हैं:
dir
मुझे अनुमतियों के बारे में कुछ नहीं बताता है।- मैं एक cmd.exe विंडो पर
del
याrm -rf
पर निर्देशिका को सिग्विन बैश विंडो पर हटा सकता हूं। - प्रश्न में फ़ाइलें, और निर्देशिका में वे हैं, पहले उसी कार्यक्रम के उसी भाग में बनाए गए थे।
- कंप्यूटर विंडोज 7 चला रहा है, इसलिए मुझे लगता है कि इसका मतलब एनटीएफएस है।
शायद प्रोग्राम जो निर्देशिका को हटाने का प्रयास करता है, इसमें इसका उपयोग करता है या फाइलें? उस कोड को निकालें जो निर्देशिका को हटा देता है और छोटे परीक्षण कोड बनाता है, जो निर्देशिका को कमांड लाइन तर्क के रूप में लेता है और इसे हटा देता है। क्या यह काम करता है? – khachik
शायद आपको अपवाद के स्टैकट्रेस में अधिक जानकारी मिलती है? – keuleJ