2010-06-23 12 views
6

यह जावा कोड Windows साझा ड्राइव पर निर्देशिका में फ़ाइलों को सूचीबद्ध करता है। क्या यह यूनिक्स सिस्टम पर सही तरीके से काम करेगा?क्या यह यूनिक्स पर काम करेगा?

File directory = new File("\\\\server/Shared/stuff/mystuff"); 
for (File file: directory.listFiles()) { 
    System.out.println(file); 
} 
+0

मिश्रित फ़ाइल-विभाजक टोकन के साथ ऐसा? मैं इसे काम देखने के लिए बेहद आश्चर्यचकित होगा। –

+0

आप इस प्रश्न का संदर्भ लेना चाहेंगे --- http://stackoverflow.com/questions/3100625/how-can-i-read-from-a-windows-shared-drive-in-a-platform-independent-way -using-ja – Bill

+2

आप इसे क्यों नहीं देखते? – Anders

उत्तर

8

लघु जवाब: नहीं

लांग जवाब: आप साम्बा इंस्टॉल है? फिर भी आपको शेयर को माउंट करने की आवश्यकता है। तो शायद यह काम नहीं करेगा।

संपादित

जावा प्रतिनिधियों अंतर्निहित ओएस अंत में करने के लिए कॉल। चूंकि यूनिक्स को पता नहीं है कि \\SERVERNAME पथ का अर्थ क्या है, जावा नहीं जानता कि इसका अर्थ क्या है। काम करने के लिए आपको क्या करना है, यह स्पष्ट रूप से सांबा का उपयोग करके ड्राइव को माउंट कर रहा है। आपका दूसरा विकल्प, यदि आप उबंटू चला रहे हैं, तो .gvfs के तहत home निर्देशिका में देखें। उबंटू आपके सांबा शेयरों के लिए वहां एक माउंट बनाता है, जिसे आप जावा का उपयोग करने में सक्षम होना चाहिए। यदि आप बाहरी उपकरणों पर भरोसा नहीं करना चाहते हैं, तो शुद्ध-जावा समाधान के लिए JCIFS आज़माएं।

1

नहीं, क्योंकि यह एक यूएनसी पथ है, जो एक खिड़कियां है।

क्या आप यूनिक्स से विंडोज़ शेयर तक पहुंचने का प्रयास कर रहे हैं? फिर jcifs पर एक नज़र डालें।

2

मेरे सिस्टम (जीनोम 2.30 डेस्कटॉप के साथ डेबियन सिड) पर मुझे एक ही व्यवहार प्राप्त करने के लिए "smb: /// सर्वर/साझा/..." चुनना होगा। मुझे लगता है कि, जीवीएफएस (जीनोम वर्चुअल फाइल सिस्टम) smbfs ड्राइवरों का उपयोग पृष्ठभूमि में वास्तविक कनेक्शन को संभालता है ...

3

नहीं ... बस उपयोगकर्ता को सही पथ का चयन करने और ओएस निर्भर फ़ाइल-चयन संवाद का उपयोग करने दें ।

1

यह देखकर मुझे प्राप्त होने वाला काउंटर प्रश्न यह है: "आप अपने आवेदन में पथ को कड़ी मेहनत क्यों करना चाहते हैं?"

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

सबसे पहले आप प्लेग जैसे पूर्ण पथ से बचना चाहते हैं। सापेक्ष पथ ठीक तरह के हैं। आप हार्डकोडेड पथों में स्लैश ('/') वर्णों का उपयोग कर सकते हैं, यह विंडोज और लिनक्स/मैक दोनों पर काम करेगा। असल में सभी प्लेटफॉर्म।

दूसरा, पथ का उपयोग क्यों करें? यह इंटरनेट युग है। यूआरएल का प्रयोग करें! फ़ाइल: यूआरएल फाइल पथ के समान ही काम करेगा, लेकिन यूआरएल का उपयोग करके ऐप वेब स्रोतों और एफ़टीपी जैसे अन्य स्रोतों से संसाधन स्वीकार करता है।

सबसे बड़ा, फ़ाइल वर्ग से बचें। यदि आप ऐसा करने का एक अच्छा तरीका खोजते हैं, तो आप पूरी तरह से लकड़ी के काम से बाहर हैं। GetResource और getResourceAsStream के साथ URL का एक साथ उपयोग करें और आपका ऐप इंटरनेट पर नेटवर्क सीमाओं के स्वतंत्र और पूरे मंच पर काम करेगा।

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