在我的应用程序中,用户选择文件。在内部,我存储有关文件的信息,我根据文件路径对其进行键控。下次使用该文件时,我会处理存储的信息。麻烦的是我实例化我的文件:
File file1 = new File(Environment.getExternalStorageDirectory() + "/test.txt");
然后,在特定的 JB 设备上,file1.getCanonicalPath() 给出:“/storage/emulated/0/test.txt”。
问题是当其他应用程序使用 Intent 中的文件路径启动我的应用程序时,它们发送的路径往往看起来像:“/mnt/sdcard/test.txt”。
有没有一种聪明的策略来消除这两条路径的歧义?可能我应该以不同的方式实例化我的文件?
编辑:
问题是,这两个文件的两个规范路径不相等。对于以下内容,cp1=="mnt/sdcard/test/txt"
并且cp2=="/storage/emulated/0/text/txt"
:
File file1 = new File("/mnt/sdcard/test.txt");
File file2 = new File("/storage/emulated/0/test.txt");
String cp1 = file1.getCanonicalPath();
String cp2 = file2.getCanonicalPath();