1. 程式人生 > >android的各種檔案目錄

android的各種檔案目錄

今天學習FileProvider,裡面就涉及到了內部儲存,外部儲存。就去查了一下,這裡整理一下。

內部儲存:

主要涉及到的方法:context.getCacheDir()和context.getFilesDir()

context.getCacheDir() 獲取到的路徑是: /data/data/包名/cache。在此路徑下,如果在系統即將耗盡儲存,它會在不進行警告的情況下刪除您的快取檔案。最好的辦法是給你的應用快取設定一個最大值,當達到這個值時你應該去刪除部分快取檔案以便能再次利用這部分空間(我查了很多的資料沒有查到,大概是通過判斷檔案的大小,當達到這個值時通過file.delete來一個個的刪除檔案)。

context.getFilesDir()獲取到的路徑是:/data/data/包名/files。這個目錄下儲存應用程式的資料,通過 openFileOutput(String, int) 建立的檔案都儲存在這個檔案目錄下。
注意:在res/xml/filepaths.xml中的標籤<files-path path="images/*" name="myimages"/>, files-path就是指代的路徑:/data/data/包名/files,其中path屬性就是files的下一級,即:/data/data/包名/files/images/,那麼name屬性的值myimages和uri的值content://com.example.myapp.fileprovider/myimages/default_image.jpg

中的myimages是一個。

外部儲存:

主要涉及到的方法:Environment.getExternalStorageDirectory()、context.getExternalFilesDir(dir)和context.getExternalCacheDir()

Environment.getExternalStorageDirectory()獲取到的路徑是: /storage/emulated/0。這是SD卡根路徑,6.0後寫入需要使用者授權。在此路徑下的檔案是app獨立檔案,是完全開放的,對於其他應用程式或者使用者都可以訪問,當你的應用被解除安裝的時候這部分檔案也不會被刪除

context.getExternalFilesDir(dir)獲取到的路徑是: /storage/emulated/0/Android/data/包名/files/dir。在此路徑下的檔案是app專屬檔案

這類檔案應該是隨著app刪除而一起刪除的。

context.getExternalCacheDir()獲取的路徑是:/storage/emulated/0/Android/data/包名/cache ,這個路徑被Android系統認定為應用程式的快取路徑,當程式被解除安裝的時候,這裡的資料也會一起被清除掉,這樣就不會出現刪除程式之後手機上還有很多殘留資料的問題。

除了這五個主要的方法還有一些方法如下:
Environment.getDataDirectory():/data 使用者資料目錄。

Environment.getDownloadCacheDirectory(): /cache 下載快取內容目錄。

Environment.getRootDirectory(): /system 系統主目錄

Environment.getExternalStoragePublicDirectory(String s): /storage/emulated/0/s一些共享檔案應該被放置在該目錄中

getPackageCodePath(): /data/app/com.demo.myapp-1.apk。 Android 安裝包的完整路徑,這個包是一個zip的壓縮檔案,它包括應用程式的程式碼和assets檔案。

getPackageResourcePath(): /data/app/com.demo.myapp-1.apk。ndroid 安裝包的完整路徑,這個包是一個ZIP的要鎖檔案,它包括應用程式的私有資源。

getDatabasePath(String s): /data/data/com.demo.myapp/databases/s 儲存通過
Context.openOrCreateDatabase 建立的資料庫檔案。

getDir(String s, Context.MODE_PRIVATE) : /data/data/com.my.app/app_s這是一個可以存放你自己應用程式自定義的檔案,你可以通過該方法返回的File例項來建立或者訪問這個目錄,注意該目錄下的檔案只有你自己的程式可以訪問。

相關推薦

android各種檔案目錄

今天學習FileProvider,裡面就涉及到了內部儲存,外部儲存。就去查了一下,這裡整理一下。 內部儲存: 主要涉及到的方法:context.getCacheDir()和context.getFilesDir() context.getCacheDi

Android獲取檔案目錄

在Android開發過程中,難免會遇到需要檔案操作,這些檔案可以存放在data分割槽下面,也可以存放在外接sd,這些路徑都是什麼呢,今天在這裡做一個簡單的總結。 我一共用了8個系統API,程式碼如下:

Android系統檔案目錄路徑說明

資料儲存路徑,如下:其中應用程式包名為:com.spt ContextWrapper類中,包含以下方法 getFilesDir() --> 內部儲存 @Override public File getFilesDir() { return mB

Android專案需要使用的各種檔案

任何一個新建的專案都會預設使用Android模式的專案結構,但這並不是專案真實的目錄結構,而是被Android Studio轉換過的這個模式結構比較簡潔明瞭,適合進行快速開發,將其切換為Project模式就是專案的真實結構了。 一.首先就是.grad

lnmp 安裝包的的各種配置檔案目錄

LNMP相關軟體安裝目錄 Nginx 目錄: /usr/local/nginx/ MySQL 目錄 : /usr/local/mysql/ MySQL資料庫所在目錄:/usr/local/mysql/var/ MariaDB 目錄 : /usr/local/mariadb/

Android】【系統】Android檔案目錄結構

system/app:存放系統軟體 system/data:存放系統軟體的資料 data/app:存放使用者安裝的軟體 data/data:存放使用者軟體的資料 storage/emulated/0:儲存卡 storage/sdcard:虛擬路徑,快捷方式,實際

android 建立檔案和建立資料夾、將assets下檔案複製到指定目錄

1.獲取APP當前目錄路徑: public String getPath(){ File fileDire = getFilesDir();//獲取../data/應用的包名/fil

Android靜態安全檢測 -> Zip檔案目錄遍歷漏洞

Zip檔案目錄遍歷漏洞 - ZipEntry.getName方法 一、API 1. 繼承關係 【1】java.lang.Object 【2】java.util.zip.ZipEntry 2.

Android開啟各種檔案的MIME TYPE-setDataAndType函式中的Type關聯

MIME:全稱Multipurpose Internet Mail Extensions,多功能Internet 郵件擴充服務。它是一種多用途網際郵件擴充協議,在1992年最早應用於電子郵件系統,但後來也應用到瀏覽器。MIME型別就是設定某種副檔名的檔案用一種應用程式來開啟的方式型別,當該副檔名檔案被訪問

Android獲取assets目錄下的檔案和圖片

      在android studio中預設不會像eclipse一樣自動新建assets檔案,首先將android studio的檢視切換到project下,src/man下直接新建檔案命名為assets即可。       1、獲取圖片 Bitmap bitmap = n

使用adb命令刪除Android系統data目錄檔案及資料夾

使用命令刪除data目錄下的資料夾,和刪除一般檔案不同。 data目錄下的檔案需要777許可權,所以需要的命令不同 data目錄: C:\Users\aw>adb shell roo

自定義android studio的配置檔案目錄後,無法正常安裝和解除安裝外掛的解決辦法。

Android Studio 的快取檔案預設安裝的在C:\Users\YourName\ .xxx 快取一些資料,有限的C盤空間很容易捉禁見肘。所以就需要修改配置檔案了,修改配置檔案的方法百度一下數量數不勝數,我這裡就不寫了。修改路徑後有一個奇葩問題:無法正常安裝和解除安裝外

獲取Android應用程式包檔案目錄---ApplicationInfo

ApplicationInfo是從一個特定的應用得到的資訊。這些資訊是從相對應的Androdimanifest.xml的< application>標籤中收集到的,可獲取應用程式啟動Activity的name。   // 根據查詢條件,查詢特定的ApplicationI

Android 解析assets目錄下的json檔案

Context test_Context = null;         String test_package = packageName;             try             {                             test_Co

Android讀取assets目錄下所有檔案

package org.crazyit.image; import java.io.IOException; import java.io.InputStream; import android.app.Activity; import android.content.

android獲取一個用於開啟各種檔案的intent

//android獲取一個用於開啟文字檔案的intent public static Intent getTextFileIntent( String param, boolean paramBoolean) { Intent intent = new Intent

如何訪問android的asset目錄和res目錄下的檔案

 在很多時候,我們需要訪問android中的資原始檔,這些資原始檔主要分為兩類,一種出於asset目錄下,稱為原生檔案,這類檔案在被打包成apk檔案時是不會進行壓縮的;另一類則是res下的檔案,這類檔案在打包成apk檔案時,會進行小記憶體優化的哦。    

Android 載入Assets目錄中Xml佈局檔案

  最近由於專案開發使用到了動態佈局,因為打包sdk ,sdk 這塊activity 需要一些layout 檔案 。而做過sdk 開發的小夥伴應該知道,layout 檔案是不能打包到jar 中的。當然了aar 除外。由於專案使用的還是jar包,所以怎麼解決lay

android】簡易檔案管理器(列表式檔案目錄

、    核心程式碼:                                 File fatherFile = new File(path); File[] files = fatherFile.listFiles();         效果圖:        

android開啟各種檔案的intent

import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.net.Uri.Builder; import java.io.File; import android.con