Intereting Posts
एंड्रॉइड में असुरक्षित ब्लूटूथ कनेक्शन Android में ScrollView ऊँचाई कैसे बढ़ाएं? कोकोस 2 डीएक्स में मुख्य / UI धागा पर चलाना कोड स्पिनर केवल आइकन के साथ एक्शन बार में, लेकिन चयनित विकल्प नहीं छवियों को प्रदर्शित करना और एंड्रॉइड में मेमोरी का प्रबंध करना एंड्रॉइड टेस्ट फ्रेमवर्क का उपयोग करना एंड्रॉइड में बहुपक्षीय या जेएसओएन डेटा भेजने में सॉफ़्टटाइम अपटॉप्टर रिस्ट्रॉफ़्ट Android पर SQLite और SharedPreferences फ़ाइलें कितनी सुरक्षित हैं? एंड्रॉइड में आंतरिक मेमोरी आकार कैसे जानूं? तुल्यकालिक और अतुल्यकालिक गतिविधियों सर्वर में अग्निबाज़ी टोकन प्रबंधन Exif डेटा TAG_ORIENTATION हमेशा 0 हैल्पाप का उपयोग करते हुए बहु स्तंभ सूची में nullPointerException घोषणा-शैली योग्य और शैली के बीच अंतर बाहर छूने के बाद पॉपअप विंडो से बर्खास्तगी से बचना

एंड्रॉइड – संपत्ति से / डेटा / डेटा फ़ोल्डर में फ़ाइलों की प्रतिलिपि बनाएँ

मुझे अपने ऐप में कुछ फाइलों का उपयोग करना होगा उन्हें संपत्ति फ़ोल्डर में रखा जाता है। मैंने SO पर विचार-विमर्श देखा, जहां फाइलें परिसंपत्ति फ़ोल्डर से, डेटा / डेटा / आंतरिक संग्रहण पर कॉपी की जा रही हैं, और फिर उपयोग की जा रही हैं। मुझे कोड मिलता है, लेकिन मुझे क्या नहीं मिलता है, संपत्ति की आंतरिक संग्रहण को कॉपी करने की क्या आवश्यकता है? अगर किसी के साथ इस के अनुभव है, तो मदद करो!

Solutions Collecting From Web of "एंड्रॉइड – संपत्ति से / डेटा / डेटा फ़ोल्डर में फ़ाइलों की प्रतिलिपि बनाएँ"

एक कारण है कि मेरे लिए सिर्फ पॉप अप है, जब वर्तमान सी / सी + एनडीके के साथ कोड का उपयोग किया जाता है जिसके लिए फ़ाइल के लिए पथ की आवश्यकता होती है और आप उस कोड को संशोधित नहीं करना चाहते हैं

उदाहरण के लिए, मैं एक मौजूदा सी लाइब्रेरी का उपयोग कर रहा हूं जिसमें कुछ डेटा फ़ाइलों की आवश्यकता होती है और केवल मौजूदा इंटरफ़ेस कुछ "लोड (चार * पथ)" फ़ंक्शन होता है।

शायद वास्तव में कुछ बेहतर तरीका है लेकिन मुझे अभी तक कोई नहीं मिला है।

इसे आज़माएं: (मेरे लिए तीनों तरीकों का अपना काम करें और "पथ" स्ट्रिंग ऑब्जेक्ट में गंतव्य पथ असाइन करें)

String toPath = "/data/data/" + getPackageName(); // Your application path private static boolean copyAssetFolder(AssetManager assetManager, String fromAssetPath, String toPath) { try { String[] files = assetManager.list(fromAssetPath); new File(toPath).mkdirs(); boolean res = true; for (String file : files) if (file.contains(".")) res &= copyAsset(assetManager, fromAssetPath + "/" + file, toPath + "/" + file); else res &= copyAssetFolder(assetManager, fromAssetPath + "/" + file, toPath + "/" + file); return res; } catch (Exception e) { e.printStackTrace(); return false; } } private static boolean copyAsset(AssetManager assetManager, String fromAssetPath, String toPath) { InputStream in = null; OutputStream out = null; try { in = assetManager.open(fromAssetPath); new File(toPath).createNewFile(); out = new FileOutputStream(toPath); copyFile(in, out); in.close(); in = null; out.flush(); out.close(); out = null; return true; } catch(Exception e) { e.printStackTrace(); return false; } } private static void copyFile(InputStream in, OutputStream out) throws IOException { byte[] buffer = new byte[1024]; int read; while((read = in.read(buffer)) != -1){ out.write(buffer, 0, read); } } 

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

 public final String path = "/data/data/com.aliserver.shop/databases/"; public final String Name = "store_db"; public void _copydatabase() throws IOException { OutputStream myOutput = new FileOutputStream(path + Name); byte[] buffer = new byte[1024]; int length; InputStream myInput = MyContext.getAssets().open("store_db"); while ((length = myInput.read(buffer)) > 0) { myOutput.write(buffer, 0, length); } myInput.close(); myOutput.flush(); myOutput.close(); }