Android 10:如何检查收到的文件路径是否是应用程序特定目录中的文件路径 (getExternalFilesDir)

Android 10: how to check if a file path received is that of one within app-specific directory (getExternalFilesDir)

我们需要检查在通用实用程序中接收到的文件的 uri 是否属于存储在应用程序基本文件夹下的任何子文件夹中的文件。比较路径似乎不是正确的方法。

String basePath = context.getExternalFilesDir(null);
System.out.println(basePath);
//Gives this output
/storage/emulated/0/Android/data/<packagename>/files/

//Created a sub-directory, localfiles and placed test.jpg in that

//When uri of test.jpg is received and path is checked
File testFile = new File(uri.getPath());
System.out.println(testFile.getAbsolutePath());
//Output is as below
/document/primary:Android/data/<packagename>/files/localfiles/test.jpg

我知道 test.jpg 存储在 getExternalFilesDir 返回的基本路径的子文件夹之一中,但如何以编程方式确认?

**Base path**: /storage/emulated/0/Android/data/<packagename>/files/
**test.jpg path**: /document/primary:Android/data/<packagename>/files/localfiles/test.jpg

感谢您帮助解决此问题。

how do I confirm that programmatically ?

你不知道。您从系统或其他任何地方获得的 Uri 不需要具有标识元素来指出 Uri 在文件系统上的位置。毕竟,Uri 根本不必指向文件系统项。