當前位置:首頁 » 安卓系統 » android目錄獲取

android目錄獲取

發布時間: 2023-03-22 21:01:38

⑴ android怎麼獲sd卡內的所有文件目錄

android程序獲取SD卡目錄的方法如下:
手機通過數據線連接電腦端,在計算機里會顯示兩個磁碟,一個是系統內存,另外一個就是SD卡內存,打開SD卡就可以找到文件目錄。
也可以通過手機查找,打開手機應用程序,點擊文件管理打開,然後打開所有文件。
接著打開」extSdCard「文件夾就是SD卡里的目錄了。

⑵ Android 獲取APP 文件目錄 & 模擬器檢測

API 27 /data/user/0/packageName/files
API 26 /data/user/0/packageName/files
API 25 /data/user/0/packageName/files
API 24 /data/user/0/packageName/files
API 23 /data/user/0/packageName/files
API 22 /data/data/packageName/files
API 21 /data/data/packageName/files
API 19 /data/data/packageName/files
API 18 /data/data/packageName/files
API 17 /data/data/packageName/files
API 16 /data/data/packageName/files

華為Meta30 5G TAS-AN00 Android 10獲取到的路徑為:

黑莓手機獲取到的非上面標准路徑;
雷蛇手機Android 8.1, 型號phone獲取到的路徑:

華為平板:

debug 包獲取到的CPU信息:

release 包:

奇怪,猜測 debug 包和 release 包運行環境不同?

mumu 模擬器:可以檢測 Build.MODEL 為 MuMu

⑶ 各類Android手機的根目錄如何獲取

可以使用Android原生的的類Environment.getExternalStorageDirectory()來獲取,一般用「/sdcard/」是可以獲取大部分的手機內存的根目錄,但是現在好像陸續的不推薦這樣去做,而是用Android原生的方法。有一個前提是你必須加入讀寫許可權才可以進行此操作,否則無效
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
記得在清單文件中加上

⑷ android怎麼獲取應用的目錄

一、方法介紹:
每個Android應用程序都可以通過Context來獲取與應用程序相關的目錄,這些目錄的功能各異,每一個目錄都有自己的特點,有時候可能會搞混淆,本文結合android源碼注釋和實際操作,詳細介紹一下每個方法:
方法:getFilesDir
釋義:返回通過Context.openFileOutput()創建和存儲的文件系統的絕對路徑,應用程序文件,這些文件會在程序被卸載的時候全部刪掉。

方法:getCacheDir
釋義:返回應用程序指定的緩存目錄,這些文件在設備內存不足時會優先被刪除掉,所以存放在這里的文件是沒有任何保障的,可能會隨時丟掉。

方法:getDir
釋義:這是一個可以存放你自己應用程序自定義的文件,你可以通過該方法返回的File實例來創建或者訪問這個目錄,注意該目錄下的文件只有你自己的程序可以訪問。

方法:getExternalCacheDir
釋義:使用這個方法需要寫外部存儲的許可權「<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />」,調用該方法會返回應用程序的外部文件系統(Environment.getExternalStorageDirectory())目錄的絕對路徑,它是用來存放應用的緩存文件,它和getCacheDir目錄一樣,目錄下的文件都會在程序被卸載的時候被清除掉。

方法:getExternalFilesDir
釋義:使用這個方法需要寫外部存儲的許可權「<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />」,這個目錄是與應用程序相關的外部文件系統,它和getExternalCacheDir不一樣的是只要應用程序存在它就會一直存在,這些文件只屬於你的應用,不能被其它人訪問。同樣,這個目錄下的文件在程序被卸載時也會被一同刪除。

方法:getExternalFilesDir
釋義:和上面的方法一樣,只是返回的是其目錄下某一類型的文件,這些類型可以是: Environment#DIRECTORY_MUSIC 音樂 Environment#DIRECTORY_PODCASTS 音頻 Environment#DIRECTORY_RINGTONES 鈴聲 Environment#DIRECTORY_ALARMS 鬧鈴 Environment#DIRECTORY_NOTIFICATIONS 通知鈴聲 Environment#DIRECTORY_PICTURES 圖片 Environment#DIRECTORY_MOVIES 視頻

方法:getDatabasePath
釋義:保存通過Context.openOrCreateDatabase 創建的資料庫文件

方法:getPackageCodePath
釋義:返回android 安裝包的完整路徑,這個包是一個zip的壓縮文件,它包括應用程序的代碼和assets文件。

方法:getPackageResourcePath
釋義:返回android 安裝包的完整路徑,這個包是一個ZIP的要鎖文件,它包括應用程序的私有資源。

方法:getObbDir
釋義:返回應用程序的OBB文件目錄(如果有的話),注意如果該應用程序沒有任何OBB文件,這個目錄是不存在的。

二、測試程序:
測試代碼如下:
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;
}

⑸ android 幾個路徑的獲取

String appPath = getApplicationContext().getPackageResourcePath();
/data/app/com.younghare.lepusService-2/base.apk

getApplicationContext().getFilesDir()

getApplicationContext().getFilesDir().getParent()
其實就是/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/你的應用包名/cache/目錄,一般存放臨時緩存數據

getApplicationContext().getExternalCacheDir()
/storage/emulated/0/Android/data/com.younghare.lepusService/cache

getExternalFilesDir(null)參數傳入的為null,這樣默認訪問的是files文件夾,我們可以指定子文件夾

⑹ android 已知文件名,怎麼取得目錄

獲得目錄 = getFilePathByName(已經知道的文件名,根目錄);

/**
*
* @param seekFileName 需要查找的File名
* @param rootFile 在哪裡查找的目錄
* @return 查找文件的全路徑
*/
private String getFilePathByName(String seekFileName,File rootFile){
List<File> files=parseFiles(rootFile);
for (File file:files){
if(file.getName().equals(seekFileName)){
return file.getAbsolutePath();
}
}
return null;
}

private List<File> parseFiles(File file){
List<File> listFiles=new ArrayList<>();
File[] files = file.listFiles();
for (File mf:files){
if(mf.isDirectory()){
listFiles.addAll(parseFiles(mf));
}else{
listFiles.add(mf);
}

}
return listFiles;
}

⑺ android app文件目錄結構

原來,只要把文件寫在這里的話,可以不用動態申請許可權,只要在manifest裡面聲明許可權就ok了;

應用程序在運行的過程中如果需要向手機上保存數據,一般是把數據保存在SDcard中的。
大部分應用是直接在SDCard的根目錄下創建一個文件夾,然後把數據保存在該文件夾中。
這樣當該應用被卸載後,這些數據還保留在SDCard中,留下了垃圾數據。

並且在API
6.0之後,根目錄文件存儲是需要用戶授權的,就算你在AndroidManifest.xml中配置了存儲許可權,用戶不授權也是寫不進去了。

SD卡讀寫許可權:

如果你想讓你的應用被卸載後,與該應用相關的數據也清除掉,該怎麼辦呢?

通過

可以得到

這個目錄裡面,一般放一些長時間保存的數據

方法可以獲取到 SDCard/ Android /data/你的應用的包名/files/ 目錄,一般放一些長時間保存的數據
通過

方法可以獲取到

如果使用上面的方法,當你的應用在被用戶卸載後,SDCard/Android/data/你的應用的包名/ 這個目錄下的所有文件都會被刪除,不會留下垃圾信息。並且

這個方法獲得的文件存儲路徑適用於6.0以後系統,只要AndroidManifest.xml配置讀寫許可權了,就不需要用戶再授權了。

正常開發中獲取存儲路徑的方法是:

可以看到,當SD卡存在或者SD卡不可被移除的時候,就調用getExternalCacheDir()方法來獲取緩存路徑,否則就調用getCacheDir()方法來獲取緩存路徑。前者獲取到的就是 /sdcard/Android/data/<application package>/cache 這個路徑,而後者獲取到的是 /data/data/<application package>/cache 這個路徑。

設置->應用->應用詳情裡面的」清除數據「與」清除緩存「選項分別對應的是data/data/<application package>/和data/data/<application package>/cache

external storage (外部存儲):

Environment.getExternalStorageDirectory()SD根目錄:/mnt/sdcard/ (6.0後寫入需要用戶授權)

context.getExternalFilesDir(dir)路徑為:/mnt/sdcard/Android/data/< package name >/files/…

context.getExternalCacheDir()路徑為:/mnt/sdcard//Android/data/< package name >/cache/…

internal storage(內部存儲):

context.getFilesDir()路徑是:/data/data/< package name >/files/…

context.getCacheDir()路徑是:/data/data/< package name >/cach/…

熱點內容
java上傳顯示圖片 發布:2024-02-24 23:06:31 瀏覽:654
flash存儲器作用 發布:2024-02-24 22:35:14 瀏覽:476
安卓吃雞手游在哪裡精彩回放 發布:2024-02-24 21:17:54 瀏覽:493
地理交叉演算法 發布:2024-02-24 21:17:07 瀏覽:751
劍無聲安卓版哪裡可以下載 發布:2024-02-24 21:14:44 瀏覽:848
金鏟鏟之戰電腦騰訊模擬器伺服器滿了 發布:2024-02-24 21:02:29 瀏覽:378
微信緩存的m4a文件 發布:2024-02-24 21:01:52 瀏覽:978
安卓光遇櫻花任務什麼時候結束 發布:2024-02-24 21:01:48 瀏覽:23
ogp的編程 發布:2024-02-24 19:42:20 瀏覽:489
sql回滾事務 發布:2024-02-24 19:34:22 瀏覽:445