【问题标题】:How can I programmatically format all data on an SD Card?如何以编程方式格式化 SD 卡上的所有数据?
【发布时间】:2011-01-20 16:39:53
【问题描述】:

如何以编程方式删除数据或格式化整个 SD 卡?

【问题讨论】:

  • 我有点希望这不可能。为什么应用程序需要这样做?如果您的应用程序存储在 SD 卡上会怎样?

标签: android sd-card


【解决方案1】:

擦除 SDCARD 的代码

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

【讨论】:

  • 这段代码让我很开心,效果很好!非常感谢。
【解决方案2】:

【讨论】:

    【解决方案3】:

    通过使用 File 类,您应该能够列出 SDCard 上的所有文件并逐个删除它们。您将创建一个递归函数来删除目录。但是,这不是一个好主意,操作系统可能会阻止您删除系统或其他用户使用的某些文件/文件夹。

    【讨论】:

      猜你喜欢
      • 2010-11-16
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      • 2016-03-15
      • 2012-01-10
      • 1970-01-01
      • 2012-09-11
      • 2018-05-30
      相关资源
      最近更新 更多