2013-08-16 126 views
1

WRITE_EXTERNAL_STORAGE許可時,我期望有權利寫整個文件系統(例如:/sdcard/storage/emulated/0/storage/sdcard0/mnt/sdcard ...)WRITE_EXTERNAL_STORAGE可能的目標文件夾

,因爲不同的內部FS,但結構,我真的不知道目標設備上允許的文件夾是什麼。

目前我用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)得到下載文件夾,但這在我看來不是我允許使用的唯一文件夾。

所以兩個問題如下:

  1. 有沒有辦法找出我可以王氏這種許可寫的是什麼文件夾?
  2. 使用DownloadManager時,第一個問題可能是目標文件夾sae嗎?
+1

使用['getExternalFilesDir()'](http://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)) – devnull

+0

你不應該擔心你的各種路徑('/ sdcard','/ storage/emulated/0','/ storage/sdcard0','/ mnt/sdcard')。通常,他們都指向同一個地方。 – ozbek

回答

2

使用Environment.getExternalStorageDirectory()來獲得可用的外部存儲目錄。

您將獲得Android外部存儲目錄。如果用戶在他們的計算機上安裝了該目錄,該設備目前可能無法訪問,該設備已從設備中刪除,或發生其他問題。您可以使用getExternalStorageState()來確定其當前狀態。

注意:不要被這裏的「外部」一詞混淆。該目錄 可以更好地被認爲是媒體/共享存儲。它是一個文件系統,它可以容納相對較大數量的數據,並在所有應用程序間共享(不強制執行權限)。傳統上,這是SD卡的 ,但它也可以作爲 設備中的內置存儲設備實現,該設備與受保護的內部存儲設備不同,並且可以將 作爲文件系統安裝在計算機上。

+0

這隻返回一個目錄,是唯一允許使用的目錄嗎? –

+0

這是根目錄。您可以讀取/寫入該目錄或其子目錄中的任何內容。 –

+0

我提到了我的問題,例如在我的Samsung Galaxy Nexus中有許多安裝點,並以某種方式可以讀取/寫入其他目錄。 –

0

對於android,只有一個外部存儲器,它通過getExternalStorageDirectory()返回,所以你應該使用默認值。

但是,公共掛載點通常對用戶進程具有rw權限,您的應用程序正在運行,因此您也可以在其中編寫該程序。獲得root權限,你可以在任何地方寫入。

相關問題