2009-02-20 11 views
9

मैं ऐसे सी # के रूप में नेट भाषाओं का उपयोग कर पता है, एक डेस्कटॉप के लिए पुनः निर्देशित स्थान खोजने के लिएविंडोज के तहत जावा में, मैं एक पुनर्निर्देशित डेस्कटॉप फ़ोल्डर कैसे ढूंढूं?

Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) 

की तरह कुछ कर सकते हैं। हालांकि, जावा के तहत, मैं ऐसा करने के लिए एक अच्छा तरीका नहीं सोच सकता। जावा से रीडायरेक्ट किए गए उपयोगकर्ता डेस्कटॉप निर्देशिका को खोजने के लिए सबसे उपयुक्त तरीका क्या है, जेएनआई का उपयोग किये बिना? जावा वेब स्टार्ट एप्लिकेशन के लिए, यदि उपयोगकर्ता एक चाहता है, तो डेस्कटॉप शॉर्टकट प्रबंधित करने के प्रयोजनों के लिए यहां विशिष्ट उद्देश्य है।

इस एप्लिकेशन को "एप्लिकेशन डेटा" पेड़ के साथ-साथ वैकल्पिक रूप से डेस्कटॉप पर लिखने की आवश्यकता है। मैं धारणा कर रहा हूं कि %APPDATA% हमेशा "सही डेटा" पेड़ खोजने के लिए, जब फ़ोल्डरों को पुनर्निर्देशित किया जाता है, तब भी सही ढंग से आबादी होती है। तो मेरा खुला सवाल यह है कि डेस्कटॉप फ़ोल्डर को विश्वसनीय रूप से कैसे ढूंढें।

नोट: मुझे विश्वास है कि जावा प्रणाली संपत्ति ${user.home} वास्तव में (and erroneously) उपयोगकर्ता के डेस्कटॉप निर्देशिका रजिस्ट्री कुंजी के माध्यम से पता लगाता है और उसके बाद "घर" डायरेक्टरी को खोजने में एक निर्देशिका ऊपर नेविगेट करने के लिए कोशिश करता है। यह ठीक काम करता है जब कोई निर्देशिका रीडायरेक्ट नहीं होती है, और अन्यथा कुछ उपयोगी हो सकता है या नहीं।

उत्तर

29
FileSystemView filesys = FileSystemView.getFileSystemView(); 

File[] roots = filesys.getRoots(); 

filesys.getHomeDirectory() 
+1

यह कैसे विश्वसनीय है? जावा 1.6 में भी यह विधि पूरी तरह से अनियंत्रित है। ऐसा लगता है कि यह व्यवहार में 100% विंडोज विशिष्ट है, जो ठीक है, कोड का यह चरण केवल विंडोज़ पर ही लगाया जाएगा, लेकिन यह आश्वस्त नहीं है। – Eddie

+0

यह विधि सिस्टम विशिष्ट नहीं है और किसी भी सिस्टम पर काम करना चाहिए कृपया निम्नलिखित दस्तावेज देखें: http://littletutorials.com/2008/03/10/getting-file-system-details-in-java/ –

+1

धन्यवाद सम्बन्ध। वह मुझे आश्वस्त करता है। एपीआई दस्तावेज की कमी मुझे चिंतित थी। शायद जेडीके 7 के लिए मैं प्रस्तावित करूंगा कि यह जावाडॉक भर जाएगा, अगर यह पहले से नहीं है। – Eddie

-1
public class Sample { 
    public static void main(String[] args) {  
     String desktopPath =System.getProperty("user.home") + "\\"+"Desktop"; 
     String s = "\"" + desktopPath.replace("\\","\\\\") + "\\\\" +"satis" + "\""; 

     System.out.print(s); 
     File f = new File(s); 

     boolean mkdir = f.mkdir(); 
     System.out.println(mkdir); 
    } 
}