从存储中删除未使用的文件

remove unused files from storage

我在存储的特定 folder.I 中保存了一些图像,例如 1.png、2.png 等。我知道如何获取所有文件的 name.This 是来源

  private void getAllElemetsFromStorage() {
    String root_sd = Environment.getExternalStorageDirectory().toString();
    File file = new File(root_sd + "/myfolder");
    for (File f : file.listFiles()) {
        if (f.isFile()) {
            String name = f.getName();
            Log.e("file names", name + "");
        }}
}

这段代码工作正常,但我有一个 problem.I 有一些 json 并且在我的 json 我有文件的 name.How 我可以得到所有文件名 不在我的 json 中并且是我的目录以及我如何删除所有这些文件?我的目标是只保存文件, 在我的 json 中,我想从我的目录中删除所有未使用的文件 我该如何解决我的问题? 谢谢

在你的 if 语句中,在你得到文件名后,遍历 json 并检查它是否在那里。如果没有,请将其删除。

您已经存在的 for 循环将为目录中的每个文件执行此操作,如果该名称不存在于 json 中则将其删除。

下面是一个例子。根据您的 Json,您需要构建列表或通过其他方式循环。

private void getAllElemetsFromStorage() {
  String root_sd = Environment.getExternalStorageDirectory().toString();
  File file = new File(root_sd + "/myfolder");
  ArrayList<String> jsonFileNames = // Get list of file names from json

  for (File f : file.listFiles()) {
    if (f.isFile()) {
        String name = f.getName();      

        // If not found in json. Delete file
        if(!jsonFileNames.contains(name))
           f.delete();
    }
  }
}

注意:此代码未经测试,因此可能有拼写错误。但它应该给你想法。