2011-11-13 10 views
5

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

कारण मुझे यह जानना है क्योंकि यदि वे हैं, तो हमें File.rename(newPath) का उपयोग करने के बजाय बिट्स की प्रतिलिपि बनाने की आवश्यकता है।

उदाहरण जब पथ अलग mountpoints पर है:

  • उपयोगकर्ता आंतरिक से बाह्य भंडारण के लिए एक फ़ाइल स्थानांतरित करने के लिए चाहता है।

  • उपयोगकर्ता/sdcard/फ़ाइलों से/sdcard/external_sd/samsungdevice पर फ़ाइलों को स्थानांतरित करना चाहता है।

उत्तर

2

एक तरह से एक Android अनुप्रयोग के भीतर से पर रहता है:

  • उस पर File.getCanonicalPath बुला() द्वारा फाइल की विहित पथ मिलता है।

  • तो वर्तमान में घुड़सवार फ़ाइल सिस्टम की सूची प्राप्त/proc/माउंट

  • और जो माउंट बिंदु पथ सवाल में फ़ाइल के विहित पथ के लिए सबसे अधिक पूर्ण स्ट्रिंग मैच है से & उनके माउंट बिंदु पथ, यह आपको फ़ाइल के माउंट पॉइंट/फाइल सिस्टम देना चाहिए।

दो फाइलों के परिणामों की तुलना करें।

5

कॉल File.rename। यदि यह सफल होता है, तो वे एक ही माउंट पॉइंट पर हैं। जिसके कारण फ़ाइल फ़ाइल में निर्धारित करने के लिए

+2

यह जाने का एक तरीका है। लेकिन अगर यह विफल रहता है - यह विभिन्न माउंट पॉइंट्स पर होने के कारण अन्य कारणों से हो सकता है। –

+2

मुझे संदेह है कि मायने रखता है। किसी भी कारण से यह असफल हो जाता है, आप बहुत कुछ करना चाहते हैं - स्वयं को कॉपी करने का प्रयास करें और केवल विफल होने पर त्रुटि रिपोर्ट करें। –

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