सिमिलिंक और उपरोक्त कोड के साथ विफल होने के दो तरीके ... और समाधान नहीं जानते हैं।
रास्ता # 1
परीक्षण बनाने के लिए इसे चलाएं:
echo test > testfile
mkdir dirtodelete
ln -s badlink dirtodelete/badlinktodelete
यहां आप अपनी परीक्षण फ़ाइल और परीक्षण निर्देशिका देखें:
$ ls testfile dirtodelete
testfile
dirtodelete:
linktodelete
फिर अपने कॉमन्स-आईओ डिलीटडायरेरी () चलाएं। यह कहते हुए क्रैश हो जाता है कि फ़ाइल नहीं मिली है। निश्चित नहीं कि अन्य उदाहरण यहाँ क्या करते हैं। लिनक्स आरएम कमांड केवल लिंक को हटा देगा, और आरएम-आर निर्देशिका पर भी होगा।
Exception in thread "main" java.io.FileNotFoundException: File does not exist: /tmp/dirtodelete/linktodelete
रास्ता # 2
परीक्षण बनाने के लिए इसे चलाएं:
mkdir testdir
echo test > testdir/testfile
mkdir dirtodelete
ln -s ../testdir dirtodelete/dirlinktodelete
यहां आप अपनी परीक्षण फ़ाइल और परीक्षण निर्देशिका देखें:
$ ls dirtodelete testdir
dirtodelete:
dirlinktodelete
testdir:
testfile
फिर अपने कॉमन-आईओ डिलीटडायरेरी () या पोस्ट किए गए उदाहरण कोड लोगों को चलाएं। यह न केवल डायरेक्टरी को डिलीट करता है, बल्कि आपका टेस्टफाइल जो डायरेक्ट्री डिलीट होने के बाहर है। (यह निर्देशिका को संक्षेप में प्रस्तुत करता है, और सामग्री को हटाता है)। rm -r केवल लिंक को हटा देगा। आपको इस तरह की कुछ चीज़ों का उपयोग करने की आवश्यकता है जो कि डिरेल्ड फाइल्स को डिलीट करें: "-L dirtodelete -type f -exec rm {} \";
$ ls dirtodelete testdir
ls: cannot access dirtodelete: No such file or directory
testdir: