Andriod 10如何检查文件是否存在

时间:2019-08-26 09:41:20

标签: android android-10.0

在Android Q中,将图片保存在应用程序特定的目录中,

path like = /data/user/0/xxx.xxx.xxx/files/phone/abc.jpg

不保存在外部存储中,请使用Device FileExplorer进行查看, 需要检查文件是否存在,避免再次下载 ,但在Android Q file.exist()中不起作用

File newFile = new File(path);
newFile.exists();

总是返回假

这个问题。我需要使用MediaStore或SAF来解析它。 或其他功能进行检查。

如果我使用MediaStore进行检查。使用ContentResolver。可能是这样的:

public void getPhotoCursor(Uri uri) {
  Cursor cursor = getContentResolver().query(uri, null, null, null, null, null);
  try {
    if (cursor != null && cursor.moveToFirst()) {
        String displayName = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));

    }
  } finally {
     cursor.close();
  }
}

但是我无法获取Uri表单应用程序特定的目录。如果我得到了Uri,如何使用文件描述符进行检查。 或使用SAF进行检查。

 File testFile = new File(getExternalFilesDir()+"phone", "abc.jpg");
 FileProvider.getUriForFile(,,testFile);

 Intent testIntent = new Intent(Intent.ACTION_VIEW);
 testIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 testIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
 testIntent.setDataAndType();
 startActivity(testIntent);

在ActivityResult中进行检查

任何帮助都会得到帮助

1 个答案:

答案 0 :(得分:0)

是我的错,每次打开APP时,我都会从APP特定的文件夹中删除所有.jpg。 所以进入APP我要检查以避免再次下载。文件存在总是返回false。