2010-06-15 6 views
6

मैं जावा में फ़ोल्डरों और फ़ाइलों का एक पेड़ बना रहा हूं। Windows और OSX निम्न कोड के साथ सिस्टम आइकन और नाम वापसी:जावा में लिनक्स फ़ोल्डर और फ़ाइल आइकन और नाम कैसे प्राप्त करें?

new JFileChooser().getIcon(File f); 
new JFileChooser().getName(File f); 

वहाँ माउस और यूनिक्स प्रणालियों के नाम पाने के लिए किसी भी संभावना है ?. एक सिस्टम कमांड भी ठीक रहेगा।

धन्यवाद।

+0

समस्या: मुझे संदेह है कि यह पर्यावरण पर निर्भर करेगा - क्या यह जीनोम है? केडीई? XFCE? एक और, कम व्यापक वातावरण? इसके कारण, एक क्रॉस-डेस्कटॉप समाधान के लिए उचित मात्रा में काम और रखरखाव की आवश्यकता होगी - और मुझे सूर्य ऐसा नहीं लगता है। हालांकि इसके बारे में सुनिश्चित नहीं हो सकता है। –

+0

सबसे व्यापक प्रदर्शन प्रबंधकों के लिए एक समाधान पर्याप्त होगा। –

उत्तर

2

एक टिप्पणी नहीं जोड़ सकते हैं, तो एक जवाब के रूप में पोस्ट:

https://stackoverflow.com/questions/1629172/how-do-you-get-the-icon-mime-type- and-application-associated-with-a-file-in-the

पर एक नज़र डालें ये सभी उत्तर आपको सी या सी ++ में अपने हाथों को गंदे बना देंगे। जावा ने वास्तव में मूल रूप से लयबद्ध महसूस नहीं किया और महसूस किया ...

+0

सी या सी ++ में निष्पादन योग्य बनाए बिना इसे हल करने का प्रयास कर रहा है। एक उत्तर xdg-mime का उल्लेख किया। मैं इसे पहले के साथ कोशिश करूंगा। –

0

मैं परीक्षण नहीं किया था, लेकिन इस कोड को सबसे सिस्टम पर काम करना चाहिए:

FileSystemView view = FileSystemView.getFileSystemView(); 
Icon icon = view.getSystemIcon(file); 
+1

नंबर पहले से ही कोशिश की है। यह केवल ओएसएक्स और यूनिक्स के लिए विंडोज सिस्टम के लिए कुछ आइकन लौटाएगा, आपको यूआई की डिफ़ॉल्ट निर्देशिका और फ़ोल्डर आइकन मिल जाएगा। इसलिए मैंने नए JFileChooser() पर स्विच किया। GetIcon (फ़ाइल f) जो विंडोज़ और ओएसएक्स के लिए फ़ाइल और फ़ोल्डर आइकन देता है। –

0

आप हमेशा जिस सिस्टम पर काम कर रहे हैं उसका नाम प्राप्त कर सकते हैं, जावा आपको मूल निष्पादन करने और इसके परिणामों को कैप्चर करने की अनुमति देता है (कमांड लाइन, इसलिए यूनिक्स स्वाद, Runtime.exec ("uname -a");) फिर आउटपुट स्ट्रीम में परिणामों को पार्स करें।

यह कहकर कि, यूनिक्स कर्नेल के शीर्ष पर जीयूआई परतों के कई अलग-अलग कार्यान्वयन हैं, और फ़ाइल प्रकारों और आइकन छवियों के बीच मैपिंग को पुनर्प्राप्त करने का एक मानक तरीका नहीं है। आप विंडो प्रबंधक के लिए एक समाधान विशिष्ट बना सकते हैं, लेकिन आपके एल्गोरिदम को बदलने की आवश्यकता होगी जिसके आधार पर डब्ल्यूएम का उपयोग किया जा रहा है।

+0

वर्तमान में एक विंडो प्रबंधक विशिष्ट कार्यान्वयन पर काम कर रहा है। उपयोगकर्ता 336851 के लिंक में एक जवाब का उल्लेख xdg-mime है, जिसे मैं उपयोग करने का प्रयास कर रहा हूं। अब तक मुझे केवल एक डेस्कटॉप फ़ाइल मिलती है (कोई पूर्ण पथ नहीं, केवल नाम)। कोई विचार कैसे चलना है? –