2012-03-01 26 views
5

मैं निम्नलिखित link से गुजरता हूं जो कहता है कि बाहरी ऐप को मेरे ऐप की स्थापना रद्द करने के दौरान स्वचालित रूप से हटा दिया जाएगा।एंड्रॉइड में मेरे ऐप की अनइंस्टॉल करने के दौरान एसडीकार्ड से फ़ोल्डरों को कैसे हटाएं?

मैं फ़ोल्डर और फ़ाइल बनाने के लिए निम्नलिखित कोड का उपयोग कर रहा:

private static String TEMP_FOLDER_PATH = Environment.getExternalStorageDirectory() + "/myAppFolder/"; 

मेरे समस्या यह है कि फ़ोल्डर myAppFolder नष्ट कर दिया हो रही है नहीं है जब मैं इस ऐप्लिकेशन को अनइंस्टॉल है।

क्या मैं कहीं भी गलत हो रहा हूं?

उत्तर

10

इसे अपने ऐप्स निजी फ़ोल्डर में सहेजें (/ डेटा/डेटा/yourappPackege)। ऐप को अनइंस्टॉल करते समय यह फ़ोल्डर हटा दिया जाएगा।
आप विधि getFilesDir() के साथ अपना निजी फ़ोल्डर प्राप्त कर सकते हैं अन्य फ़ाइलों को हटाया नहीं जा सकता है क्योंकि आपकी ऐप को हटाए जाने पर "पता" नहीं है।

+0

आप एक बहुत त्वरित जवाब धन्यवाद देखें ... मुझे उस कोशिश करते हैं ... राज – Nik

+0

इस काम करता है आप केवल एक ही चीज़ मुझे क्या करना है की जरूरत है धन्यवाद ऐप/एंड्रॉइड/डेटा/myappPackage – Nik

1

हे लिंक यह कहता है कि यदि आप getExternalCacheDir() का उपयोग करते हैं, तो ऐप को अनइंस्टॉल करते समय केवल फ़ोल्डर्स ऑटो हटा दिए जाते हैं। तो कृपया अपने आप को सही करें। आप getExternalStorageDirectory का उपयोग कर रहे हैं, तो आप मैन्युअल रूप से प्रोग्रामिंग

आप कोड

स्ट्रिंग TEMP_FOLDER_PATH = Environment.getExternalStorageDirectory() + '/ myAppFolder/"नीचे का उपयोग कर सकते एक फ़ोल्डर हटाना द्वारा फ़ोल्डर हटाना है,

File f1=new File(TEMP_FOLDER_PATH); 
    f1.delete(); 
+0

द्वारा पथ नाम बदलें मैं प्रोग्राममैटिक रूप से कैसे कर सकता हूं .. मैं आपके मामले में हूं, जब मैं अपना ऐप अनइंस्टॉल किया जाता हूं तो एसडीकार्ड से फ़ोल्डर्स को कैसे हटाया जा सकता है – Nik

+0

उत्तर अपडेट किया गया है, कृपया – Maneesh

+1

ठीक है .. धन्यवाद। लेकिन जब एप्लिकेशन अनइंस्टॉल कर रहा है तो मैं कैसे पता लगा सकता हूं – Nik

0

नहीं। एंड्रॉइड ओएस ऐप अनइंस्टॉल होने पर एक ऐप से संबंधित एसडीकार्ड फ़ाइलों को नहीं हटाता है।

-1

हटाने

public static boolean deleteDirectory(File path) { 
if(path.exists()) { 
    File[] files = path.listFiles(); 
    if (files == null) { 
     return true; 
    } 
    for(int i=0; i<files.length; i++) { 
    if(files[i].isDirectory()) { 
     deleteDirectory(files[i]); 
    } 
    else { 
     files[i].delete(); 
    } 
    } 
} 
return(path.delete()); 

के लिए इस काम}