在我的應用程序中,用戶選擇文件。在內部,我存儲關於文件的信息,這是我基於文件路徑的關鍵。下一次使用該文件時,我會使用存儲的信息進行操作。麻煩的是我實例化我的文件有:Android:明確文件路徑
File file1 = new File(Environment.getExternalStorageDirectory() + "/test.txt");
然後,特定JB設備上,file1.getCanonicalPath()給出: 「/storage/emulated/0/test.txt」。
麻煩的是,當其他應用程序啓動我的應用程序文件路徑在意圖,他們發送的路徑往往是這樣的:「/mnt/sdcard/test.txt」。
是否有歧義這兩條路徑明智的策略?可能我應該實例化我的文件不同?
編輯:
麻煩的是,這兩個文件兩個canaonical路徑是不相等的。對於下面的,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();
相同的文件有2個不同的絕對路徑?這些路徑是不同的,可以存儲在存儲中而不會互相排斥。你能詳細說明一下情況嗎? 「意圖」如何發送給您,並準備何時發送? – 2013-04-08 17:04:56
我希望有一種方法可以將兩者等同起來,因爲不同的路徑指向同一個文件。或者,如果我評估環境。getExternalStorageDirectory()作爲「/ mnt/sdcard /」而不是作爲「/ storage/emulated/0」,它會減少這個問題的發生(但我不知道該怎麼辦) – ab11 2013-04-08 17:14:32