2012-05-01 16 views
10

में ट्रैवर्सल का ऑर्डर क्या है जिसमें Files.walkFileTree उसी स्तर पर फ़ाइलों/निर्देशिकाओं का दौरा करता है?Files.walkFileTree

यह आकार, अंतिम संशोधित समय या नाम के क्रम में उनसे मिलने के लिए प्रतीत नहीं होता है। मुझे API documentation में कुछ भी नहीं मिला।

शायद preVisitDirectory विधि का उपयोग यात्रा के क्रम को निर्दिष्ट करने के लिए किया जा सकता है लेकिन डिफ़ॉल्ट व्यवहार क्या है?

उत्तर

12

जिस क्रम में उपनिर्देशिका पढ़ रहे हैं the Java Tutorial में इस टिप्पणी के अनुसार परिभाषित नहीं है:

एक फ़ाइल पेड़ पहले गहराई चला गया है, लेकिन आप यात्रा के क्रम में उपनिर्देशिका दौरा कर रहे हैं के बारे में कोई अनुमान नहीं कर सकते ।

जिस क्रम में फ़ाइलों को पढ़ने के कर रहे हैं के लिए, यह आपूर्ति की DirectoryStream, जो sun.nio.fs.WindowsDirectoryStream अपने कंप्यूटर पर है पर निर्भर करता है (वर्तमान कार्यान्वयन में)। the javadoc of DirectoryStream पढ़ना, आप देखेंगे कि:

पुनरावर्तक द्वारा लौटाए गए तत्व कोई विशिष्ट क्रम में नहीं हैं।

+0

उत्तर के लिए धन्यवाद। तो Files.walkTreeFile कुछ बिंदु कॉल फ़ाइलों पर होगा। NewDirectoryStream और DirectoryStream लौटा ओएस और/या jdk/jre पर निर्भर करता है? – Sridhar

+0

असल में हाँ। निचली पंक्ति यह है: यह मानने के लिए कोड न करें कि आपको एक विशिष्ट आदेश मिलेगा क्योंकि इसके बारे में कोई गारंटी नहीं है। – assylias