android context獲取目錄詳解
獲取 sqlite系統資料庫路徑
方式1:
ApkInfo apkInfo = new ResourceUtil(context).getApkInfo();
APP_PATH = new StringBuilder("/data/data/").append(apkInfo.packageName)
.toString();
SHARED_PREFS = APP_PATH + "/shared_prefs";
DATABASES = APP_PATH + "/databases/"+"database.db";
方式2:context.getDatabasePath("database.db");
例子:
private StringBuilder getFilePath( ){
StringBuilder filePathBuilder = new StringBuilder( );
// 返回通過Context.openFileOutput()建立和儲存的檔案系統的絕對路徑,應用程式檔案,這些檔案會在程式被解除安裝的時候全部刪掉。
filePathBuilder.append( "getFilesDir == " ).append( getFilesDir( ) ).append( "\n" );
// 返回應用程式指定的快取目錄,這些檔案在裝置記憶體不足時會優先被刪除掉,所以存放在這裡的檔案是沒有任何保障的,可能會隨時丟掉。
filePathBuilder.append( "getCacheDir == " ).append( getCacheDir( ) ).append( "\n" );
// 這是一個可以存放你自己應用程式自定義的檔案,你可以通過該方法返回的File例項來建立或者訪問這個目錄,注意該目錄下的檔案只有你自己的程式可以訪問。
filePathBuilder.append( "getDir == " ).append( getDir("test.txt", Context.MODE_WORLD_WRITEABLE) ).append( "\n" );
/* 需要寫檔案許可權 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> */
// 呼叫該方法會返回應用程式的外部檔案系統(Environment.getExternalStorageDirectory())目錄的絕對路徑,它是用來存放應用的快取檔案,它和getCacheDir目錄一樣,目錄下的檔案都會在程式被解除安裝的時候被清除掉。
filePathBuilder.append( "getExternalCacheDir == " ).append( getExternalCacheDir( ) ).append( "\n" );
// 這個目錄是與應用程式相關的外部檔案系統,它和getExternalCacheDir不一樣的是隻要應用程式存在它就會一直存在,這些檔案只屬於你的應用,不能被其它人訪問。同樣,這個目錄下的檔案在程式被解除安裝時也會被一同刪除。
filePathBuilder.append( "getExternalFilesDir == " ).append( getExternalFilesDir( "/" ) ).append( "\n" );
/**
* 和上面的方法一樣,只是返回的是其目錄下某一型別的檔案,這些型別可以是:
* Environment#DIRECTORY_MUSIC 音樂
* Environment#DIRECTORY_PODCASTS 音訊
* Environment#DIRECTORY_RINGTONES 鈴聲
* Environment#DIRECTORY_ALARMS 鬧鈴
* Environment#DIRECTORY_NOTIFICATIONS 通知鈴聲
* Environment#DIRECTORY_PICTURES 圖片
* Environment#DIRECTORY_MOVIES 視訊
*
* */
filePathBuilder.append( "getExternalFilesDir == " ).append( getExternalFilesDir( Environment.DIRECTORY_PICTURES ) ).append( "\n" );
// 儲存通過Context.openOrCreateDatabase 建立的資料庫檔案
filePathBuilder.append( "getDatabasePath == " ).append( getDatabasePath( DATA_BASE_NAME ) ).append( "\n" );
// 返回android 安裝包的完整路徑,這個包是一個zip的壓縮檔案,它包括應用程式的程式碼和assets檔案
filePathBuilder.append( "getPackageCodePath == " ).append( getPackageCodePath( ) ).append( "\n" );
// 返回android 安裝包的完整路徑,這個包是一個ZIP的要鎖檔案,它包括應用程式的私有資源。
filePathBuilder.append( "getPackageResourcePath == " ).append( getPackageResourcePath( ) ).append( "\n" );
// 返回應用程式的OBB檔案目錄(如果有的話),注意如果該應用程式沒有任何OBB檔案,這個目錄是不存在的。
filePathBuilder.append( "getObbDir == " ).append( getObbDir( ) ).append( "\n" );
return filePathBuilder;
}
結果:
Activity提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用於獲取/data/data//cache目錄
getFilesDir()方法用於獲取/data/data//files目錄
將檔案寫入SD卡內:
獲取SDCard的狀態:
Environment.getExtemalStorageState()
EnvironmentMEDIA_MOUNTED手機裝有SDCard,並且可以進行讀寫
獲取SDCard的目錄:Environment.getExtemalStorageDirectory()
File saveFile=new File("/sdcard/zhzhg.txt");
或:File sdCardDir=new File("/sdcard");//獲取SD卡目錄
File saveFile-new File(sdCardDir,"zhzhg.txt");
FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write("檔案的讀寫".getBytes());
outStream.close();
目錄檔案替換:
/**
* 複製目錄
*
* @param srcDir
* 源目錄
* @param destDir
* 目標目錄
* @param successMsg
* 複製成功的提示語
* @param failedMsg
* 複製失敗的提示語
* @return 當複製成功時返回true, 否則返回false。
*/
private final boolean copyDir(String srcDir, String destDir,
String successMsg, String failedMsg) {
try {
FileUtils.copyDirectory(new File(srcDir), new File(destDir));
} catch (IOException e) {
e.printStackTrace();
// showToast(failedMsg);
return false;
}
// showToast(successMsg);
return true;
}
相關推薦
android context獲取目錄詳解
獲取 sqlite系統資料庫路徑 方式1: ApkInfo apkInfo = new ResourceUtil(context).getApkInfo();APP_PATH = new StringBuilder("/data/data/").append(apkInfo
Android-系統/proc目錄詳解
/proc是一個虛擬檔案系統,其下面的檔案不是真實存在的,不佔用實際儲存空間。 /proc/cmdline:顯示核心啟動的命令列。 /proc/cpuinfo:顯示系統cpu的資訊。 /proc/filesystems,顯示當前註冊了的檔案系統列表,nodev表示為虛擬檔案系統。
Eclipse ADT 建立Android專案----工程目錄詳解
一、Eclipse建立Android工程 步驟:File→New→Android Application Project 1.工程名稱必須唯一,在Project name中填入HelloAndroid。 2.包的名稱空間,需要遵循Java包的命名方
Android Context類結構詳解
大家好, 今天給大家介紹下我們在應用開發中最熟悉而陌生的朋友-----Context類 ,說它熟悉,是應為我們在開發中 時刻的在與它打交道,例如:Service、BroadcastReceiver、Activity等都會利用到Context的相關方法 ; 說它陌
Android sd卡目錄詳解
附註: 二:7.0後文
Android系統/目錄詳解
Android系統/proc目錄詳解: /proc/cpuinfo:顯示系統cpu的資訊。 /proc/meminfo:顯示物理及虛擬記憶體使用情況。 /proc/modules:載入的核心模組列表。 /proc/uptime:分別表示系統啟動時間和系統空閒時間。 /proc/ve
Android 6.0執行時獲取許可權詳解
最近在工作過程中會遇到,明明已經在AndroidManifest.xml中配置了許可權,但是就是沒有作用,百度了之後才發現現在在應用系統大於等於6.0的手機上面,需要動態的獲取許可權。就是當你需要這個許可權的時候,需要手機給使用者一個提示選擇是否同意開啟這個許
Android-Studio之mipmap目錄和drawable目錄詳解
簡單說一下: 使用上沒有任何區別,你把它當drawable用就好了。 但是用mipmap系統會在縮放上提供一定的效能優化。 官方介紹: Mipmapping for drawables Using a mipmap as the source for
Android自定義view詳解
this boolean mar 處理 都是 並且 jdk text 命名 從繼承開始 懂點面向對象語言知識的都知道:封裝,繼承和多態,這是面向對象的三個基本特征,所以在自定義View的時候,最簡單的方法就是繼承現有的View 通過上面這段代碼,我定義了一個Ske
操作系統中的目錄詳解
系列 mkdir 保存 linu ges 分隔 組成 查找 而在 首先要搞清楚一些基本的問題 1.文件就是一些數據的集合,計算機的信息都是通過 文件來保存 2.windows下的文件夾與linux下的目錄是同一個東西 3.目錄是一種文件,一種特殊的文件,有時候也被
Android MVC開發框架詳解
div ada 2-2 展示 gpo lose 回調接口 cycle recycler 1、目錄根據需要自行添加 adapter 用於RecyclerView、ListView 等各種適配器 fragment 存放fragment model
Linux的/dev目錄詳解
loop tid 終端 控制臺 包含 設備 pil 文件系統 get 在linux下,/dev目錄是很重要的,各種設備都在下面。下面簡單總結一下: dev是設備(device)的英文縮寫。/dev這個目錄對所有的用戶都十分重要。因為在這個目錄中包含了所有Linux系
【轉】Android Camera 相機開發詳解
exc troy start 當前 container rac google getconf 對比度 在Android 5.0(SDK 21)中,Google使用Camera2替代了Camera接口。Camera2在接口和架構上做了巨大的變動, 但是基於眾所周知的原因
Android Parcel對象詳解
行數 ado state on() 直接 之一 一起 sharp mar 關於Parcel的使用 在分析Parcel之前,首先按照分析流程,介紹下關於Parcel的相關常規使用。 首先是關於Parcel的獲取: Parcel parcle = Parcel.Obtain()
linux目錄詳解
style 啟動過程 usr 位置 cpu信息 pos 過程 scripts strong 網卡的配置文件目錄 /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0
Android EventBus3.x 使用詳解(一)
led AC target 分解 感覺 div activit .org android事 ?(^∇^*) 五一假期在家無事,新項目中用的是RxJava2+EventBus感覺還不錯,趁這閑暇總結下EventBus 一、概要簡述 EventBus
3、【Linux系統編程】系統目錄詳解
升級 user ssa pci edi 靜態 描述 com 沒有 Linux系統目錄詳解 一、Linux系統目錄結構 1、根目錄/ 這就是根目錄。對你的電腦來說,有且只有一個根目錄。所有的東西,我是說所有的東西都是從這裏開始。舉個例子:當你在終端裏輸入“/home”,
CentOS7.5 系統目錄詳解
CentOS7系統目錄 檔案系統的型別 LINUX有四種基本檔案系統型別:普通檔案、目錄檔案、連線檔案和特殊檔案,可用file命令來識別。 普通檔案:如文字檔案、C語言元程式碼、SHELL指令碼、二進位制的可執行檔案等,可用cat、less、more、
Android FileProvider 屬性配置詳解及FileProvider多節點問題
眾所周知在android7.0,修改了對私有儲存的限制,導致在獲取資源的時候,不能通過Uri.fromFile來獲取uri了我們需要適配7.0+的機型需要這樣寫: 1:程式碼適配 if (Build.VERSION.SDK_INT > 23) {//
Linux /proc目錄詳解
Linux /proc目錄詳解 Linux系統上的/proc目錄是一種檔案系統,即proc檔案系統。與其它常見的檔案系統不同的是,/proc是一種偽檔案系統(也即虛擬檔案系統),儲存的是當前核心執行狀態的一系列特殊檔案,使用者可