2010-11-29 13 views
5

मैं लिनक्स से विंडोज तक कुछ कोड पोर्ट करने की कोशिश कर रहा हूं। मैं वास्तव में विंडोज के बारे में ज्यादा नहीं जानता, और इसलिए मैं अंधा उड़ रहा हूं। सवाल में कोड, 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 चला रहा है, इसलिए मुझे लगता है कि इसका मतलब एनटीएफएस है।
+0

शायद प्रोग्राम जो निर्देशिका को हटाने का प्रयास करता है, इसमें इसका उपयोग करता है या फाइलें? उस कोड को निकालें जो निर्देशिका को हटा देता है और छोटे परीक्षण कोड बनाता है, जो निर्देशिका को कमांड लाइन तर्क के रूप में लेता है और इसे हटा देता है। क्या यह काम करता है? – khachik

+0

शायद आपको अपवाद के स्टैकट्रेस में अधिक जानकारी मिलती है? – keuleJ

उत्तर

3

यहां संभावनाएं हैं। पथ खुद खराब नहीं दिखता है। आपकी सबसे अच्छी शर्त कमांड प्रॉम्प्ट से उस निर्देशिका को मैन्युअल रूप से हटाने का प्रयास करना है और देखें कि आपको क्या त्रुटि मिलती है।

हालात की जाँच करने के:

  • एक अनुप्रयोग द्वारा उपयोग में निर्देशिका है, या इसकी सामग्री के किसी भी?
  • निर्देशिका है, या इसकी कोई भी फाइल, केवल पढ़ने के लिए? (dir के साथ जांचें, ls नहीं)।
  • क्या निर्देशिका, या इसकी किसी भी फाइल में विशेष अनुमतियां हैं, और आप व्यवस्थापक नहीं हैं?
  • बीटीडब्ल्यू, यह एनटीएफएस है, मुझे लगता है?
+0

- मैं फ़ाइल को "डेल" के साथ ठीक से हटा सकता हूं। –

+0

- डीआईआर मुझे किसी भी अनुमति के बारे में कुछ नहीं बताता है। मुझे लगता है कि यह एनटीएफएस है - यह विंडोज 7 है। –

+0

"डेटा" एक फ़ाइल या निर्देशिका है? इसके अलावा, क्या इसमें कोई विशेष अनुमति है? – EboMike

संबंधित मुद्दे