वर्चुअल / sdcard / के कई स्थानों से भ्रमित


46

कुछ डिवाइस (जैसे मेरे Nexus 4) में SD कार्ड के लिए बाहरी स्लॉट नहीं है। इसके बजाय, एक रूट फ़ोल्डर है जिसे /sdcard/उसी तरह से व्यवहार किया जाता है। लेकिन मुझे अन्य रास्ते भी मिलते हैं जो सभी एक ही फाइलों की ओर इशारा करते हैं - कुछ तरह के रीडायरेक्ट होने चाहिए (मुझे लगता है कि इसे लिनक्स में सिम्बलिंक कहा जाता है )।

इन सभी रास्तों में समान फाइलें हैं:

/sdcard/
/storage/sdcard0/
/storage/emulated/0/
/storage/emulated/legacy/

कौन सा पथ "वास्तविक" है? अन्य रास्तों के बारे में क्या? उनका उपयोग किस लिए किया जाता है, वे क्यों मौजूद हैं?

जवाबों:


38

अनुशंसित व्याख्यान: क्यों / sdcard / / sdcard / 0 / में 4.2 के साथ बदल गया?

संक्षेप में: इसे जेली बीन के साथ पेश की गई बहु-उपयोगकर्ता कार्यक्षमता के साथ करना है:

  • /storage/emulated/0/: मेरी जानकारी के लिए, यह "एमएमसी" ("मालिक भाग") को संदर्भित करता है। आमतौर पर यह आंतरिक है। "0" यहां उपयोगकर्ता के लिए खड़ा है, "0" पहला उपयोगकर्ता उर्फ ​​डिवाइस-स्वामी है। यदि आप अतिरिक्त उपयोगकर्ता बनाते हैं, तो यह संख्या प्रत्येक के लिए वेतन वृद्धि होगी।
  • /storage/emulated/legacy/पहले की तरह, लेकिन वर्तमान में काम करने वाले उपयोगकर्ता के हिस्से की ओर इशारा करते हुए (मालिक के लिए, यह एक सहानुभूति होगी /storage/emulated/0/)। इसलिए इस रास्ते को हर उपयोगकर्ता को अपने "भाग" पर लाना चाहिए।
  • /sdcard/: श्वेम की एक टिप्पणी के अनुसार , यह एक सहानुभूति है ...
    • /mnt/sdcard (Android <4.0)
    • /storage/sdcard0 (Android 4.0+)
  • /storage/sdcard0/: जैसा कि यहां कोई legacyलटकन नहीं है (नीचे टिप्पणियां देखें), "0" इस मामले में स्वयं डिवाइस (कार्ड) की पहचान करता है। एक, अंततः, एक कार्ड रीडर को ओटीजी के माध्यम से दूसरे एसडीकार्ड से जोड़ सकते हैं, जो तब बन जाएगा /storage/sdcard1(इसके लिए कोई सबूत नहीं है, बस एक अनुमान है - लेकिन मैं एक अच्छा कहूंगा)

यद्यपि कोई निष्कर्ष पर पहुंच सकता है, /storage/sdcard/legacyसाथ ही साथ, वहाँ भी नहीं होना चाहिए (टिप्पणियों को देखें) - जो पूरी तरह से यहां संख्याओं की मेरी धारणा के साथ समझ में आता है, उपयोगकर्ता से संबंधित नहीं हैं, बल्कि संभावित कई कार्डों के लिए: " 0 "हमेशा डिवाइस के कार्ड-स्लॉट में एक होगा, इसलिए यहां" विरासत सिम्कलिन "की कोई आवश्यकता नहीं है।


धन्यवाद! और नहीं, कोई /storage/sdcard/legacyरास्ता नहीं है।
Torben Gundtofte-Bruun

2
अजीब। लेकिन यह इस तथ्य के साथ करना पड़ सकता है कि असली sdcard पर शायद ही कोई अनुमति हो (FAT फाइल सिस्टम उन्हें समर्थन नहीं दे रहा है)। अंतर ( /sdcard0/बनाम /emulated/0) को देखते हुए , "0" यहां उस स्थिति के लिए अभिप्रेत हो सकता है जब कोई कार्ड रीडर और USB होस्ट मोड के माध्यम से कई SDCards संलग्न करता है। बस एक अनुमान है, एक कठिन तथ्य नहीं है - लेकिन मैं एक अच्छा कहूंगा।
इज़ी

उत्तर तदनुसार अपडेट कर दिया :)
इज़ी

2
/sdcard/बस एक सहानुभूति है /storage/sdcard0/। 4.0.0 से पुराने संस्करण पर, यह है /mnt/sdcard/
मैथ्यू हरले

और मुझे लगता है, एंड्रॉइड 4.0+ पर, /mnt/sdcard/क्या एक सिमलिंक है /storage/sdcard0/? चूंकि दोनों मेरे Nexus 4 पर नेविगेट करने योग्य हैं
MrWhite

2

हाँ थोड़ा भ्रमित हैं, लेकिन ये मेमोरी लेआउट के लिए वैकल्पिक मार्ग हैं

/ mnt / sdcard0 / (आंतरिक वर्चुअल एसडी कार्ड)

और अधिक उपकरणों से जुड़े होने पर अपने सही को इज़्ज़त दें, लेकिन डिवाइस के आधार पर नामकरण अलग हो सकता है।

पूर्व। / mnt / sdcard1 / (एसडी स्लॉट में भौतिक एसडी कार्ड)

लेकिन अन्य उपकरणों जैसे कि एक USB फ्लैश ड्राइव एक एडाप्टर के साथ कनेक्ट हो सकता है

/ mnt / media_rw / usbdisk (एंड्रॉइड किटकैट 4.4 और उससे ऊपर?) या / mnt / usbdisk (जेलीबीन 4.1 - 4.2)


1
हां, नामकरण डिवाइस / निर्माता / ROM पर निर्भर हो सकता है। लेकिन आम तौर पर, /mnt/*"वास्तविक माउंट" के साथ नीचे रहने वाले - केवल उन सभी मामलों में एक सिमलिंक है /storage:)
इज़ी

खैर, मेरे पास mnt के तहत एक शेल फ़ोल्डर भी है। मैं डिवाइस रोम को बार-बार स्विच करता हूं और इस प्रकार, उन रोमों के लिए, जो बाहरी एसडीकार्ड को डिफ़ॉल्ट मेमोरी के रूप में बनाता है, शेल फ़ोल्डर मेरी आंतरिक मेमोरी के रूप में व्यवहार करता है, और अन्य रोम के लिए जो आंतरिक मेमोरी के रूप में एसडीकार्ड स्वैप नहीं करता है , शेल भी नहीं आता है। चित्र में। यह सभी डेटा के साथ फ़ोल्डर में बस वहां रहता है, लेकिन स्थानीय फ़ाइल प्रबंधक द्वारा पहुंच योग्य नहीं है। जानना चाहता था, वास्तव में यह क्या है।
अली_विर्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.