一般問題:當位置變化時,Environment.getExternalStorageDirectory()的定義行爲是什麼?
人們都存儲在「外部存儲目錄」
我在做什麼數據的應用程序更新後抱怨數據丟失:
我使用Environment.getExternalStorageDirectory()
獲取外部存儲目錄以將文件存儲在內部存儲器外部,以便有機會將這些文件存儲在SD卡上。
我遇到了這樣的問題,即在每次應用更新後,很少量的用戶抱怨存儲在應用中的文件不再可見。
有這種方法說的官方文檔中的一段:
在我的應用程序此路徑可能平臺版本之間發生變化,所以應用程序應該 只能堅持相對路徑。
我得到我的目錄下面的代碼:
File root = Environment.getExternalStorageDirectory();
File dir = new File(root.getAbsolutePath() + "/" + DIRECTORY_NAME + "/");
根據不同的Android版本,這將是一個不同的dir
。例如/mnt/sdcard/dir_name
,/storage/sdcard0/dir_name
如果dir
不存在,我創建目錄。這與新安裝時發生的行爲相同。
問:
當OS的更新會發生什麼情況。是否有保證舊位置將作爲新位置的符號鏈接存在? 應用程序更新後,人們如何抱怨數據丟失?
thx。我知道無法保證在SD卡上存儲。卸載時'getExternalFileDir'不是持久的。 'cachDir'也不合適。我沒有在任何地方存儲abs路徑(請參閱問題)。問題是:在更新'getExternalStorageDirectory()'的位置的操作系統更新之後,我正在使用的代碼是否仍會找到我的文件? – philipp