比如要獲取 要獲取libjnixcld.so絕對路徑
呈貢網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
File file=new File("/data/data/com.dtBank.app.service/lib/libjnixcld.so")
簡單的說就是/data/data/packagename/你的文件夾名稱/文件名
非隱藏文件可以這樣獲取
以上方法只能獲取動態(tài)共享庫的絕對路徑
對于像minde.dat,public.dat以及其他一些文件獲取路徑的方式如下:
一,將文件放入assets文件夾下面(放入此文件夾下面的文件可通過InputStream in=context.getAssets().open("public.dat"));
獲得其二進(jìn)制形式的流,具體例子如下
package com.dtBank.app.service;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import android.content.Context;
import android.os.Environment;
import android.util.Log;
/**
* 獲得加密文件的路徑
* @author hb
*
*/
public class getEncryptionFilePath {
class Obj{
InputStream in;
String fileDir;
String folder;
}
String lock="";
private void getCryptFilePath(Obj obj){
synchronized(lock){
try{
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
File cryptDir= new File(obj.folder);
Log.v("bb","創(chuàng)建的文件夾:"+obj.folder);
cryptDir.mkdirs();
OutputStream os= new FileOutputStream(obj.fileDir);
byte[] buf = new byte[1024*10];
int l;
Log.v("bb","開始寫文件");
InputStream in=obj.in;
while ((l = in.read(buf)) != -1) {
os.write(buf, 0, l);
os.flush();
}
Log.v("bb","文件已寫完");
os.close();
in.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
// 調(diào)用此方法獲取文件在sdcard上面的絕對路徑
public void execute(Context context){
InputStream in=null;
OutputStream out=null;
try{
in =(context.getAssets().open("mixed.dat"));
String fileDir_mixed="/sdcard/xcloudmixed/mixed.dat";
final Obj obj=new Obj();
obj.in=in;
obj.fileDir=fileDir_mixed;
obj.folder="/sdcard/xcloudmixed";
new Thread(){
@Override
public void run(){
getCryptFilePath(obj);
}
}.start();
in =(context.getAssets().open("public.dat"));
String fileDir_public="/sdcard/xcloudpublic/public.dat";
final Obj obj1=new Obj();
obj1.in=in;
obj1.fileDir=fileDir_public;
obj1.folder="/sdcard/xcloudpublic";
new Thread(){
@Override
public void run(){
getCryptFilePath(obj1);
}
}.start();
}catch(Exception e){
e.printStackTrace();
}
}
}
String appPath = getApplicationContext().getPackageResourcePath();
/data/app/com.younghare.lepusService-2/base.apk
getApplicationContext().getFilesDir()
getApplicationContext().getFilesDir().getParent()
其實(shí)就是/data/data/包(這是沙盒其他app無法訪問)
String dataAppPath = getApplicationContext().getFilesDir().getParent();
new File(dataAppPath+"/databases/task.db").exists();//返回是true
抽象路徑名的絕對路徑名字符串
String appAbsolute = getApplicationContext().getFilesDir().getAbsolutePath()
/data/user/0/com.younghare.lepusService/files
獲取CachDir
getApplicationContext().getCacheDir()
通過Context.getExternalCacheDir()方法可以獲取到 SDCard/ android /data/你的應(yīng)用包名/cache/目錄,一般存放臨時(shí)緩存數(shù)據(jù)
getApplicationContext().getExternalCacheDir()
/storage/emulated/0/Android/data/com.younghare.lepusService/cache
getExternalFilesDir(null)參數(shù)傳入的為null,這樣默認(rèn)訪問的是files文件夾,我們可以指定子文件夾
分為:內(nèi)部存儲和外部存儲
如何區(qū)分內(nèi)部存儲和外部存儲:可以從物理和邏輯區(qū)分
從物理的角度區(qū)分,內(nèi)部存儲就是手機(jī)自帶存儲空間,外部存儲就是外部接入的存儲空間例如SD卡
從邏輯意義上區(qū)分,data,system 目錄就是手機(jī)的內(nèi)部存儲,而 mnt 或者 storage目錄下的sdcard0指向的sdcard目錄就是外部存儲。如果是手機(jī)自帶的外部存儲被稱為機(jī)身外部存儲,外置的SD卡則稱之為外部存儲。當(dāng)然兩者都稱為外部存儲也沒關(guān)系。這里描述的內(nèi)部存儲和機(jī)身外部存儲都屬于機(jī)身存儲;
邏輯區(qū)分是從4.4以上版本開始的;
獲取內(nèi)部存儲路徑和api對應(yīng)關(guān)系
1,通過Environment
2,通過上下文Context
Build.VERSION_CODES.LOLLIPOP及以上版本新增的API
Build.VERSION_CODES.N及以上版本新增的API
特點(diǎn):
1、內(nèi)部存儲路徑中的文件是分類存儲的,我們無法干涉,除了cache目錄,別的目錄系統(tǒng)不會自動創(chuàng)建
2、除了files目錄,別的目錄我們幾乎都是無法手動操作的
3、別的App幾乎無法訪問內(nèi)部存儲中的數(shù)據(jù),除了用非法手段或者我們主動暴露
4、內(nèi)部存儲目錄下的文件夾及文件會隨著app的卸載而被系統(tǒng)自動刪除
外部存儲又可分為共有目錄和私有目錄;
私有目錄
私有目錄:不需要訪問權(quán)限
Android 在外部存儲空間中也提供了特殊目錄供App存放私有文件,該路徑為:/storage/emulated/0/Android/data/包名/
注意:應(yīng)用安裝之后/storage/emulated/0/Android/data/是沒有對應(yīng)的應(yīng)用文件夾的,需要手動調(diào)用對應(yīng)的API創(chuàng)建;
獲取私有目錄路徑
共有目錄
共有目錄:需要申請權(quán)限才能訪問
權(quán)限:6.0以上需要動態(tài)申請
獲取共有目錄的API 29中已過時(shí):
android手機(jī)獲取自帶存儲來路徑和sd卡存儲路徑的方式是:調(diào)用Environment.getExternalStorageDirectory(),返回的存儲源目錄并不是系統(tǒng)內(nèi)置的SD卡目錄。
1.一部分手機(jī)將eMMC存儲掛載到
/mnt/external_sd
、/mnt/sdcard2
等節(jié)點(diǎn)知,而將外置的SD卡掛載到
Environment.getExternalStorageDirectory()這個(gè)結(jié)點(diǎn)。
此時(shí),調(diào)用Environment.getExternalStorageDirectory(),則返回外置的SD的路徑。
2.而另一部分手機(jī)直接道將eMMC存儲掛載在Environment.getExternalStorageDirectory()這個(gè)節(jié)點(diǎn),而將真正的外置SD卡掛載到/mnt/external_sd、/mnt/sdcard2
等節(jié)點(diǎn)。
此時(shí),調(diào)用Environment.getExternalStorageDirectory(),則返回內(nèi)置的SD的路徑。
用 /mnt 獲取全部掛載的存儲路徑。 mnt/sdcard和mnt/sdcard1一個(gè)是系統(tǒng)存儲路徑一個(gè)是SD卡存儲路徑。
網(wǎng)站名稱:android獲取路徑,android默認(rèn)文件訪問路徑
標(biāo)題網(wǎng)址:http://jinyejixie.com/article42/dschhhc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、云服務(wù)器、全網(wǎng)營銷推廣、網(wǎng)站維護(hù)、品牌網(wǎng)站制作、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)