2010-08-31 19 views
7

सर के लिए "मेरे दस्तावेज़" से फ़ाइल तक पहुंचने में त्रुटि, सर, मैं जावा एप्लिकेशन में काम कर रहा हूं। उस एप्लिकेशन पर मुझे "मेरे दस्तावेज़" से फ़ाइलों तक पहुंच प्राप्त करनी है। जब मैं विंडोज 7 का उपयोग कर रहा हूं, तो विंडोज़ संस्करण के साथ समस्या आ रही है, इसे "दस्तावेज़" फ़ोल्डर के रूप में एक्सेस किया जा सकता है लेकिन विंडोज एक्सपी के लिए यह "मेरा दस्तावेज़" है।विंडोज एक्सपी और विंडोज 7

मैं विंडोज 7 में "दस्तावेज़" फ़ोल्डर से फ़ाइलों तक पहुंचने के लिए निम्नलिखित कोड लिख रहा हूं।

public static void main(String[] arr) 
{ 
    try 
    { 
     String source = System.getProperty("user.home")+ File.separator + "Documents"; 
     File[] Files = new File(source).listFiles(); 
     System.out.println(Files.length); 
    } 
    catch(Exception ex) 
    { 
     ex.printStackTrace(); 
    } 
} 

और Windows XP

के लिए
public static void main(String[] arr) 
{ 
    try 
    { 
     String source = System.getProperty("user.home")+ File.separator + "My Documents"; 
     File[] Files = new File(source).listFiles(); 
     System.out.println(Files.length); 
    } 
    catch(Exception ex) 
    { 
     ex.printStackTrace(); 
    } 
} 

कृपया आप मुझे एक सामान्य विधि, जो Windows के सभी संस्करणों के लिए लागू किया जा सकता का सुझाव सकता है?

उत्तर

1

आप ऑपरेटिंग सिस्टम संस्करण की जांच कर सकते हैं और उसके बाद उचित फ़ाइल नाम को मैप करने के लिए इसका उपयोग कर सकते हैं।

+0

हाँ, आप सिस्टम गुणों से "os.name" और "os.version" प्राप्त कर सकते हैं; – mhshams

+0

उत्तर देने के लिए धन्यवाद। यह मेरे लिए ठीक काम कर रहा है। – Toman

0

इसके लिए कोई मानक जावा विधि नहीं है, लेकिन एकाधिक पुस्तकालय मौजूद हैं, उदाहरण के लिए Winfoldersjava

बस "मेरे दस्तावेज़" अनुमान लगाएं और संलग्न न करें। आपको विंडोज के स्थानीय संस्करणों में समस्या होगी। उदाहरण के लिए नॉर्वेजियन में, नाम "माइन डॉक्यूमेंटर" है, न कि "माई डॉक्यूमेंट्स"।

0

apache commons project देखें। एक वर्ग SystemUtils है जो सिस्टम के बारे में अधिक जानकारी प्रदान करता है।

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