如何以编程方式在android应用程序中格式化SD卡?

时间:2014-04-12 20:19:30

标签: android format sd-card

如何通过实施"格式化SD卡"的代码来格式化移动设备内的SD卡?在申请中? 我目前正在使用此代码,但我无法让它工作。

    public void wipingSdcard(View view) {
        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();
                }
            }
        }
    }

我也在使用android:onClick =" wipingSdcard"在我的xml.code中为"格式sd卡"按钮。

我做错了什么?

3 个答案:

答案 0 :(得分:1)

实际上,您无法通过删除所有文件和文件夹来格式化SD卡。想象一下,SD卡是未格式化的,你不能只删除里面的文件,因为操作系统不知道它使用的文件系统。

答案 1 :(得分:0)

也包括这些权限。

MOUNT_FORMAT_FILESYSTEMS

MOUNT_UNMOUNT_FILESYSTEMS

答案 2 :(得分:0)

是否     wipeDirectory(tempFile.toString()); 给出正确的参数?

我的意思是,tempFile.toString()与tempFile.getPath()。toString()相同吗? 可能就是这样。