Android常用檔案路徑介紹

2021-09-11 14:53:26 字數 3669 閱讀 2478

我想很多得人都和我一樣,經常記不住檔案的路徑,到使用的時候又是懵的,然後就想著寫一篇來記錄一下,方便以後檢視。

1.context.getcachedir();

應用內部儲存空間(資料檔案私有),當我們的檔案儲存在這個檔案下,是不需要申請許可權;當應用被解除安裝的時候目錄下的檔案也會跟著被刪除。

複製**

注意:這個檔案的目錄和應用的儲存位置有關係,當我們的應用移動到外部儲存空間的時候,檔案的絕對路徑是變化的,所以我們在使用的時候我們盡量使用----相對路徑

這個目錄和getfilesdir()不同之處就在於,當系統的儲存空間比較少的時候,系統會自動刪除這個目錄下的檔案。

按照google官方的說法是,超過1mb的檔案就最好儲存在getexternalcachedir()裡面。

context.getcachedir().getpath輸出路徑為:

/data/data/包名/cache

複製**

2.context.getfilesdir();

應用內部儲存空間(資料檔案私有),當我們的檔案儲存在這個檔案下,是不需要申請許可權;當應用被解除安裝的時候目錄下的檔案也會跟著被刪除。

複製**

注意:這個檔案的目錄和應用的儲存位置有關係,當我們的應用移動到外部儲存空間的時候,檔案的絕對路徑是變化的,所以我們在使用的時候我們盡量使用----相對路徑

系統提供了乙個訪問該路徑的方法:

context.openfileoutput(string , int) or context.openfileinput(string , int)

複製**

(1)string引數: 檔名

(2)int引數

context.mode_private = 0

context.mode_world_readable = 1

context.mode_world_writeable = 2

複製**

context.getcachedir().getpath輸出路徑為:

/data/data/包名/files

複製**

3.context.getexternalcachedir();

應用外部儲存空間(資料檔案私有,系統**檔案無法訪問(例如存了乙個***檔案,通過系統的資料夾管理系統,無法找到)),

當應用被解除安裝的時候,目錄下的檔案會被刪除,但是這裡和getcachedir()還有不同之處:

只有手機系統使用的是虛擬外部儲存(虛擬sd卡,現在絕大多數的手機,都不用外掛程式物理sd卡了)的時候,

才可以在解除安裝應用的同時,自動刪除該目錄下的檔案,如果是之前的物理儲存(物理sd卡)則不會自動刪除該目錄,及目錄下的檔案。

在使用的時候,需要判斷外部儲存的掛載狀態(getexternalstoragestate(file)),還需要申請讀寫許可權(read_external_storage,

write_external_storage)

複製**

注:當其他應用擁有sd卡讀寫許可權的時候,可以訪問該目錄下的檔案

context.getexternalcachedir().getpath輸出路徑為:

/mnt/sdcard/android/data/包名/cache

複製**

4.context.getexternalfiledir();

應用外部儲存空間(資料檔案私有,系統**檔案無法訪問(例如存了乙個***檔案,通過系統的資料夾管理系統,無法找到)),

當應用被解除安裝的時候,目錄下的檔案會被刪除,但是這裡和getfilesdir()還有不同之處:

只有手機系統使用的是虛擬外部儲存(虛擬sd卡)的時候,

才可以在解除安裝應用的同時,自動刪除該目錄下的檔案,如果是之前的物理儲存(物理sd卡)則不會自動刪除該目錄,及目錄下的檔案

在使用的時候,需要判斷外部儲存的掛載狀態(getexternalstoragestate(file)),還需要申請讀寫許可權(read_external_storage, write_external_storage)

複製**

注:當其他應用擁有sd卡讀寫許可權的時候,可以訪問該目錄下的檔案

context.getexternalfiledir().getpath()輸出路徑為:

/mnt/sdcard/android/data/包名/files

複製**

5.environment.getexternalstoragedirectory();

應用外部儲存空間(資料檔案非私有,可以被手機的系統程式訪問(如***格式的檔案,會被手機系統檢索出來),同樣,該目錄下的檔案,

注意:外部儲存空間可能處於不可訪問狀態,或者已經被移除狀態,或者儲存空間損壞無法訪問等問題。可以通過getexternalstoragestate()

這個方法來判斷外部儲存空間的狀態。

注:在該目錄下讀寫檔案,需要獲取讀寫許可權

該目錄下的檔案,這個目錄是使用者進行操作的乙個根目錄,進入二級目錄可以通過

getexternalfilesdirs(string), getexternalcachedirs(), and getexternalmediadirs().這些方法

複製**

官方建議,不要直接使用該目錄,為了避免汙染使用者的根命名空間,應用私有的資料,應該放在 context.getexternalfilesdir目錄下其他的可以被分享的檔案,可以放在getexternalstoragepublicdirectory(string).目錄下

environment.getexternalstoragedirectory().getpath()輸出目錄為: 

/mnt/sdcard

複製**

6.environment.getexternalstoragepublicdirectory(environment.directory_pictures)

應用外部儲存空間(資料檔案非私有,可以被手機的系統程式訪問(如***格式的檔案,會被手機系統檢索出來),同樣,該目錄下的檔案,

這個目錄是用來存放各種型別的檔案的目錄,在這裡使用者可以分類管理不同型別的檔案(例如**、、電影等);

型別如下: directory_music, directory_podcasts, directory_ringtones, directory_alarms, directory_notifications,

directory_pictures, directory_movies, directory_downloads, directory_dcim, or directory_documents

environment.getexternalstoragepublicdirectory("test").getpath()輸出路徑:

/mnt/sdcard/test 複製**

Android常見檔案路徑介紹

我記憶力不是太好,總是記不清,那幾個常用的檔案路徑的具體名字,所以就在此記錄一下,也方便不太清楚的同學查閱。外部儲存,內部儲存的區別 external storage 常見的獲取檔案路徑方法,對應的絕對路徑 getcachedir getabsolutepath data data packagen...

android開發常用路徑

作為乙個開發者,我們經常需要通過快取一些檔案到sd卡中,常見的方式就是,通過 file sdcard environment.getexternalstoragedirectory sd卡根目錄會迅速變得雜亂不堪。並且在api 6.0之後,根目錄檔案儲存是需要使用者授權的,就算你在 androidm...

Android檔案路徑獲取

bitmap相關知識 android bitmap計算所佔記憶體空間的大小 getrowbytes和getbytecount int size bitmap.getrowbytes bitmap.getheight 獲取大小,bitmap所占用的記憶體空間數等於bitmap的每一行所占用的空間數乘以...