如何从SD卡中删除所有数据

时间:2014-01-20 22:10:01

标签: android

请问如何以编程方式从SD卡(我的意思是格式化SD卡)中删除所有数据。 我尝试使用它,但它仅用于一个文件。

File file = new File(selectedFilePath);
boolean deleted = file.delete();

1 个答案:

答案 0 :(得分:1)

它对我来说很好。

此代码可用于删除SD卡中的所有文件。希望它应该工作。感谢。

public void wipingSdcard() {
    File deleteMatchingFile = new File(Environment
            .getExternalStorageDirectory().toString());
    try {
        File[] filenames = deleteMatchingFile.listFiles();
        if (filenames != null && filenames.length > 0) {
            for (File tempFile : filenames) {
                if (tempFile.isDirectory()) {
                    wipeDirectory(tempFile.toString());
                    tempFile.delete();
                } else {
                    tempFile.delete();
                }
            }
        } else {
            deleteMatchingFile.delete();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

private void wipeDirectory(String name) {
    File directoryFile = new File(name);
    File[] filenames = directoryFile.listFiles();
    if (filenames != null && filenames.length > 0) {
        for (File tempFile : filenames) {
            if (tempFile.isDirectory()) {
                wipeDirectory(tempFile.toString());
                tempFile.delete();
            } else {
                tempFile.delete();
            }
        }
    } else {
        directoryFile.delete();
    }
}

如果您使用的是> 1.6 SDK

,则必须同意
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
AndroidManifest.xml 文件

中的