2012-03-01 32 views
5

Tôi đã trải qua link sau đây cho biết rằng các thư mục bên ngoài sẽ tự động bị xóa trong khi gỡ cài đặt ứng dụng của tôi.Cách xóa thư mục khỏi SDCard trong khi gỡ cài đặt ứng dụng của tôi trong Android?

Tôi đang sử dụng đoạn mã sau để tạo ra các thư mục và tập tin:

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

Vấn đề của tôi là myAppFolder thư mục không bị xóa khi tôi gỡ bỏ cài đặt ứng dụng.

Tôi có gặp sự cố ở bất kỳ đâu không?

Trả lời

10

Lưu trong Thư mục riêng của ứng dụng (/ data/data/yourappPackege). Thư mục này sẽ bị xóa khi gỡ cài đặt Ứng dụng.
Bạn có thể lấy Thư mục riêng của mình bằng Phương thức getFilesDir() Không thể xóa các tệp khác vì Ứng dụng của bạn không "biết" khi nó đang bị xóa.

+0

cảm ơn bạn trả lời rất nhanh chóng ... Hãy để tôi thử mà ... Raj – Nik

+0

công trình này cảm ơn bạn là điều duy nhất tôi cần phải làm là thay đổi tên đường dẫn bằng cách thêm/Android/data/myappPackage – Nik

1

Liên kết này nói rằng Nếu bạn sử dụng getExternalCacheDir(), thì chỉ các thư mục được tự động xóa khi gỡ cài đặt ứng dụng. Vì vậy, hãy sửa bản thân của bạn. Nếu bạn đang sử dụng getExternalStorageDirectory, sau đó bạn phải tự xóa các thư mục bằng cách lập trình

để xóa một thư mục mà bạn có thể sử dụng mã dưới đây

Chuỗi TEMP_FOLDER_PATH = Environment.getExternalStorageDirectory() + "/ myAppFolder /";

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

Làm cách nào để tôi làm điều đó theo chương trình .. i am trong trường hợp của bạn làm cách nào để xóa thư mục khỏi sdcard khi ứng dụng của tôi bị gỡ cài đặt – Nik

+0

cập nhật câu trả lời, vui lòng kiểm tra – Maneesh

+1

Thats .. cảm ơn bạn nhưng làm cách nào để phát hiện khi ứng dụng đang gỡ cài đặt – Nik

0

No. Hệ điều hành Android không xóa các tệp SDCard tương ứng với một ứng dụng khi ứng dụng được gỡ cài đặt.

-1

thấy tác phẩm này với xóa

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()); 

}

Các vấn đề liên quan