दिलचस्प पोस्ट
TextureView पर वीडियो बजाना मैं स्विफ्ट में एरेज़ को कैसे जोड़ या मर्ज कर सकता हूं? एमएस एक्सेस के साथ मैं हाइबरनेट का उपयोग कैसे करूं? PHP में वस्तु की संरक्षित संपत्ति कैसे प्राप्त करें वेक्टर में प्रत्येक अनूठी तत्व की घटनाओं की संख्या निर्धारित करना एक स्थान से दूसरे स्थान पर फ़ाइल कैसे प्रतिलिपि करें? एकता में जेसन और जेसन अर्रे को सीरियलाइज और डिसेरीलाइज़ करना कॉलबैक क्या है? ggplot, पहलू, पाइकार्ट: पाई चार्ट स्लाइस के बीच में पाठ रखकर एंड्रॉइड वॉली एसएसएल का समर्थन करता है? क्या हम एएसपी.नेट वेबफोर्स (*। एस्पक्स पेज) में रेज़र सिंटैक्स का उपयोग कर सकते हैं? प्रोजेक्ट यूलर प्रश्न 14 (कोलेत्स समस्या) SDK Manager.exe काम नहीं करता है Google मानचित्र एपीआई V2 का उपयोग करके मानचित्र पर दो बिंदुओं के बीच की दूरी का पता लगाएं CSS में '@' प्रतीक का उद्देश्य क्या है?

एंड्रॉइड में एक फ़ाइल बनाने की कोशिश कर रहा है: ओपन विफल: ईआरओएफएस (केवल-पढ़ने के लिए फ़ाइल सिस्टम)

यह रेखा:

final FileOutputStream outputStream = new FileOutputStream(name); 

जिसके परिणामस्वरूप संदेश के साथ FileNotFoundException में परिणाम /2ozjfFQzwv: open failed: EROFS (Read-only file system) जहां "2ozjfFQzwv" है जो मैंने फ़ाइल के नाम के रूप में पारित किया है।

मैंने इसे WRITE_INTERNAL_STORAGE अनुमति के बिना और बिना कोशिश की है। मैं इस फाइल को लिखने के लिए कैसे बनाऊं?

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

वेब के समाधान से एकत्रित समाधान "एंड्रॉइड में एक फ़ाइल बनाने की कोशिश कर रहा है: ओपन विफल: ईआरओएफएस (केवल-पढ़ने के लिए फ़ाइल सिस्टम)"

मैंने इसे WRITE_INTERNAL_STORAGE अनुमति के बिना और बिना कोशिश की है।

WRITE_INTERNAL_STORAGE में कोई WRITE_INTERNAL_STORAGE अनुमति नहीं है

मैं इस फाइल को लिखने के लिए कैसे बनाऊं?

आप रूट डिवाइस पर संभवत: को छोड़कर नहीं करते हैं, अगर आपका ऐप सुपरयुजर विशेषाधिकारों के साथ चल रहा है। आप आंतरिक संग्रहण की जड़ में लिखने का प्रयास कर रहे हैं, जिसमें ऐप्स को एक्सेस नहीं है।

कृपया FileOutputStream कन्स्ट्रक्टर के संस्करण का उपयोग करें जो एक File ऑब्जेक्ट लेता है। उस File ऑब्जेक्ट को कुछ स्थान के आधार पर बनाएँ जिसे आप लिख सकते हैं, जैसे:

  • getFilesDir() (आपकी Activity या अन्य Context कहा जाता है)
  • getExternalFilesDir() (आपकी Activity या अन्य Context कहा जाता है)

बाद में अनुमति के रूप में WRITE_EXTERNAL_STORAGE आवश्यकता होगी।

क्या फाइल को लिखे जाने से इसे फिर से पढ़ना एक आसान तरीका है?

आप अस्थायी रूप से इसे एक स्थिर डेटा सदस्य में डाल सकते हैं।

क्योंकि बहुत से लोगों में एसडी कार्ड स्लॉट नहीं है

"एसडी कार्ड स्लॉट्स" अप्रासंगिक, द्वारा और बड़े हैं 99% Android डिवाइस उपयोगकर्ताओं के पास बाह्य भंडारण होगा – अपवाद 4+ वर्षीय डिवाइस होंगे जहां उपयोगकर्ता ने अपना एसडी कार्ड हटा दिया। 2010 के मध्य से निर्मित उपकरणों में ऑन-बोर्ड फ्लैश के हिस्से के रूप में बाह्य भंडारण है, हटाए जाने योग्य मीडिया के रूप में नहीं।

WRITE_EXTERNAL_STORAGE की अनुमति का उपयोग करने का प्रयास करें आपको इसका उपयोग करना चाहिए कि क्या कोई बाहरी कार्ड है या नहीं

यह मेरे लिए अच्छी तरह से काम करता है:

 path = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_MOVIES); File file = new File(path, "/" + fname); 

और मेरी फ़ाइलों को उचित फ़ोल्डर में रखता है

जोड़ा जा रहा है

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

मैनिफेस्ट में और मार्टिन के समान प्रयोग:

 path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES); File file = new File(path, "/" + fname); 

इसने काम कर दिया।

यहां एंड्रॉइड डेवलपर से सरल नमूना है

असल में, आप इस तरह आंतरिक मेमोरी में एक फाइल लिख सकते हैं:

 String FILENAME = "hello_file"; String string = "hello world!"; FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); fos.write(string.getBytes()); fos.close(); 

जैसा कि अन्य लोगों ने उल्लेख किया है, एंड्रॉइड पर ऐप किसी भी फ़ोल्डर को आंतरिक स्टोरेज में नहीं लिख सकता है, लेकिन उनका निजी संग्रहण (जो / डेटा / डाटा / PACKAGE_NAME के ​​अंतर्गत है)।

आपको अपने ऐप के लिए उचित पथ प्राप्त करने के लिए API का उपयोग करना चाहिए।

इसे पढ़ें

Google ने बाह्य एसडीकार्ड तक लेखन एक्सेस प्रतिबंधित कर दी है एपीआई 1 से एक ढाँचा है जिसे स्टोरेज एक्सेस फ्रेमवर्क कहा जाता है जो आपको लिखने की अनुमति देने के लिए "कॉन्ट्रैक्ट्स" सेट अप करता है।

अधिक जानकारी के लिए:

एंड्रॉइड – बाहरी एसडी कार्ड में फ़ाइलों की प्रतिलिपि बनाने के लिए नए स्टोरेज एक्सेस फ्रेमवर्क का उपयोग कैसे करें