1. 程式人生 > >Android 檔案路徑

Android 檔案路徑

android 獲取系統預設路徑:
Environment.getDataDirectory().getPath() : /data 


Environment.getDownloadCacheDirectory().getPath() : /cache 


Environment.getExternalStorageDirectory().getPath(): /mnt/sdcard 


Environment.getRootDirectory().getPath() : /system 


Context.getCacheDir().getPath() : /data/data/com.ruizg/cache 


Context.getExternalCacheDir().getPath()

:/mnt/sdcard/Android/data/com.ruizg/cache 


Context.getFilesDir().getPath() : /data/data/com.ruizg/files 


Context.getObbDir().getPath() : /mnt/sdcard/Android/obb/com.ruizg


Context.getPackageName() : com.ruizg


Context.getPackageCodePath() : /data/app/comruizg-1.apk 


Context.getPackageResourcePath() : /data/app/com.ruizg-1.apk

總的來說,一部含有sd卡的Android手機,分別有系統檔案目錄和sd卡檔案目錄。


不同的裝置上,呼叫getExternalStorageDirectory()返回值卻不一樣。查詢了Android的文件,才找到原因,原來這個方法返回的是當前裝置廠商所認為的“外部儲存”,
有可能返回外接的SD卡目錄(Micro SD Card),也可能返回內建的儲存目.

一部分手機將eMMC儲存掛載到 /mnt/external_sd 、/mnt/sdcard2 等節點,而將外接的SD卡掛載到Environment.getExternalStorageDirectory()這個結點。
此時,呼叫Environment.getExternalStorageDirectory(),則返回外接的SD的路徑。

另一部分手機直接將eMMC儲存掛載在Environment.getExternalStorageDirectory()這個節點,而將真正的外接SD卡掛載到/mnt/external_sd、/mnt/sdcard2 等節點。
此時,呼叫Environment.getExternalStorageDirectory(),則返回內建的SD的路徑。

至此就能解釋為都是無外接SD卡的情況下,在中興手機上,呼叫

列印Environment.getExternalStorageState(),卻返回 ”removed“,在索尼、MOTO G上就返回:“mounted”

當手機中沒有sd卡時,使用Environment.getExternalStorageDirectory()獲取的是系統檔案目錄下面對應的/storge/sdcard0
因為這相對於沒有SD卡的android系統,是一個外部的檔案目錄,而/data/data下就是內部的檔案目錄,在沒有root許可權的情況下,
內部檔案目錄下的檔案是不可以被複制或修改的,而被看作是外部檔案的系統目錄則需要以下兩個許可權才可以對其操作 


<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />;
當有SD卡插入時,整個的系統目錄被看作是一個內部檔案目錄,但是裡面的一些目錄也是可以
新增或修改的,當獲取Environment.getExternalStorageDirectory()時,系統目錄下有對應的目錄,而sd卡預設就是在此路徑之下,
所以當有sd卡的時,在該路徑下插入某個檔案,系統對應的目錄有該檔案,而在sd卡的根目錄下也存在此檔案。

相關推薦

獲取Android檔案路徑

getFilesDir: /data/user/0/包名/files getExternalFilesDir: /storage/emulated/0/Android/data/包名/files getExternalStorageDirectory: /storage/emulated/0

Android 檔案路徑詳解

Android 檔案目錄繁多,每個目錄都有每個目錄存在的意義,將檔案儲存在正確的目錄,有利於檔案的分類管理。 Android磁碟儲存可以分為兩大類,內部儲存和外部儲存。 內部儲存 內部儲存不是記憶體,是位於位於系統磁碟中一個獨特的位置。/data/ 資料夾就是內

Android 檔案路徑

android 獲取系統預設路徑:Environment.getDataDirectory().getPath() : /data  Environment.getDownloadCacheDirectory().getPath() : /cache  Environmen

android檔案路徑詳解

做資料儲存的時候碰到過檔案路徑的問題,下面就這個問題做一個 總結: 如果我們想按照下面的方式建立檔案: File file=new File("/data/abcdef.txt");你會發現建立不成功,即使你加上許可權,也會提示你錯誤:java.io.IOException

Android檔案路徑獲取

圖片Bitmap相關知識:Android Bitmap計算所佔記憶體空間的大小 getRowBytes和getByteCount() int size = bitmap.getRowBytes() * bitmap.getHeight(); 獲取大小,Bitmap所佔

Android檔案儲存路徑分析

1.internal or external storage 內部儲存和外部儲存的對比: 1.內部儲存永遠可以訪問,由於外部儲存可能是SD卡,可能無法訪問; 2.內部儲存檔案只有本App才能訪問,外部儲存檔案可以共享給其他APP; 3.解除安裝APP,相應的內部儲存檔案被系統刪除

在Windows下Android Studio配置檔案路徑修改

先看一下預設生成的檔案,Android Studio每次升級都會建立對應版本的配置檔案,這裡我刪除了之前的檔案了,只保留了最近的版本的。 說一下在Windows下對Android Studio的相關配置檔案的路徑修改。如果C盤空間大的話就不用進行調整,但是對於

Android Studio配置檔案路徑修改

1.AndroidStudio x.x(xx為版本號)資料夾位置修改 進入Android Studio的安裝目錄,進入bin資料夾,用文字編輯軟體打idea.properties,去掉以下兩項的註釋符號#,修改對應的路徑為新路徑即可。 idea.conf

[總結]Android 獲取本地視訊檔案路徑並播放的幾種方式

Android 獲取本地視訊檔案路徑的方式 在android 專案開發過程中,遇到獲取本地視訊檔案的問題,記錄一下獲取本地檔案的幾種方式。 首先說下sdcard在手機中的掛載位置。 android手

Android SDK提供的獲取檔案路徑方法小結

Android提供了兩種獲取檔案路徑的方式: 1、通過Environment獲取,常用方法如下圖所示: 這些方法都是靜態方法。 通過Environment獲取的檔案路徑都是公共的,是所有app都可以訪問的,其中我們最常用的就是Environmen.

Android如何獲取assets或者raw目錄的視訊檔案路徑播放視訊

獲取assets的檔案方法 String mp4FilePath = "file:///android_asset/Kotlin與ava共存.mp4"; 再呼叫 mVideoVie

android呼叫系統檔案瀏覽器獲得uri或者檔案路徑

基本思路: 1.使用隱式intent和startActivityforResult開啟系統檔案瀏覽器。 2.使用onAcitivityRsult方法接受返回的 intent,取出其中包含的uri(注意這不是檔案路徑,但是和檔案路徑可以相互轉化)。 3.下面註釋的就是其中的

android--------根據檔案路徑使用File類獲取檔案相關資訊

Android通過檔案路徑如何得到檔案相關資訊,如 檔名稱,檔案大小,建立時間,檔案的相對路徑,檔案的絕對路徑等。如圖:public class MainActivity extends Activity { private String path = "/storage

Android例項-路徑資訊及檔案和資料夾的操作(XE8+小米2)

unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Con

Android常見檔案路徑介紹

關於Android中幾個常用檔案路徑的介紹 我記憶力不是太好,總是記不清,那幾個常用的檔案路徑的具體名字,所以就在此記錄一下,也方便不太清楚的同學查閱。 外部儲存,內部儲存的區別 Internal storage: 總是可

Android之根據Uri獲得圖片或視訊檔案路徑(解決4.4以上版本得不到路徑的情況)

package com.example.listviewcheckdemo; import android.annotation.TargetApi; import android.content.ContentUris; import android.content.Co

Android 4.4 前後版本讀取相簿圖片和拍照完美解決方案-獲取檔案路徑

4.3或以下,選了圖片之後,根據Uri來做處理,很多帖子都有了,我就不詳細說了.主要是4.4,如果使用上面pick的原生方法來選圖,返回的uri還是正常的,但如果用ACTION_GET_CONTENT的方法,返回的uri跟4.3是完全不一樣的,4.3返回的是

Android 檔案存放路徑和讀取方式

getExternalFilesDir();Environment.getExternalStorageState() 對於應用攜帶的靜態資料,可以放置在應用的assets目錄或者res,raw目錄下。 對於assets目錄下的靜態資料,存在當檔案最大支援1MB的侷限,

Android 自定義檔案路徑選擇器

文中涉及到檔名稱排序,固定根目錄以及返回上一層在上面,方便選擇等。根據檔案字尾,篩選檔案還沒做。先看效果。 1、效果圖 2、核心程式碼如下 是通過繼承BaseAdapter 完成的,裡面有自定義layout介面。進行管理返回跟目錄以及上一層,方便管理。

android檔案操作路徑詳解

1:內部儲存     data資料夾就是我們常說的內部儲存,當我們開啟data資料夾之後(沒有root的手機不能開啟該資料夾)         data下還有許多資料夾             一個資料夾是app資料夾,app資料夾裡存放著我們所有安裝的app     的ap