2013-05-14 8 views
6

मैं कैसे देख सकता हूं कि मैं जावा में एक फ़ाइल को हटा सकता हूं?कैसे जांचें कि मैं एक फाइल को हटा सकता हूं?

उदाहरण के लिए, मैं फ़ाइल C:/file.txt नष्ट करने के लिए सक्षम होना चाहिए, लेकिन मैं कभी नहींC:/ या Computer, या My Documents आदि

समाधान possible duplicate में वर्णित मेरे लिए काम नहीं करता है को नष्ट करने के लिए सक्षम होंगे।

+0

* "समाधान संभव दो प्रतियों में वर्णित मेरे लिए काम नहीं करता है। "* कृपया समझाओ क्यों? –

+0

@ मार्को फोर्बर्ग कभी-कभी यह 'सी:/file.txt' जैसी सामान्य फ़ाइलों के लिए' एक्सेस अस्वीकृत 'अपवाद फेंकता है। – SeniorJD

उत्तर

10

फ़ाइल को निकालने के लिए फ़ाइल के माता-पिता की लेखन अनुमति की आवश्यकता होती है, यानी निर्देशिका जहां फ़ाइल संग्रहीत होती है। जावा में निर्देशिका को कक्षा java.io.File के उदाहरण द्वारा भी दर्शाया गया है जिसमें विधि canWrite() है।

तो, यह जांचने के लिए कि फ़ाइल को हटाया जा सकता है या नहीं, आपको file.getParent().canWrite() पर कॉल करना चाहिए।

+0

यह मेरे लिए काम करता है, धन्यवाद! – SeniorJD

+0

मेरा सहकर्मी @ arn0n – AlexR

+3

+1 उत्कृष्ट समाधान के लिए सभी क्रेडिट लेकिन वास्तव में यह 'file.getParentFile() है। CanWrite() '। –

3

मेरी विंडोज 7 64 बिट NTFS और जावा 7 (Oracle JDK), केवल एक चीज है जो मेरे लिए काम किया मज़बूती से

boolean canDelete = file.renameTo(file) 

यह आश्चर्यजनक रूप से सरल है और फ़ोल्डरों है, जो के लिए भी काम करता है कि "का उपयोग कर बॉक्स पर कहीं नीचे "एक" खुला "या" लॉक "फ़ाइल।

अन्य चीजें मैंने कोशिश की और झूठी सकारात्मक का उत्पादन:। एक FileLock, फ़ाइल # canWrite प्राप्त, फ़ाइल # setLastModified ("स्पर्श"), file.getParent() canWrite()

+0

यह ध्यान दिया जाना चाहिए कि इस फ़ंक्शन का व्यवहार प्लेटफ़ॉर्म-निर्भर है। – colti

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