當前位置:首頁 » 安卓系統 » android讀取路徑

android讀取路徑

發布時間: 2023-02-17 22:44:42

1. Android:怎麼獲取當前文件(類)所在的目錄的完整路徑

android的硬存儲是按照linux系統規則來劃分的,用於存儲客戶信息和客戶安裝的應用的是/data分區,你如果使用的是c程序的話,應該是在/data/app之類的下面,我手頭沒有板子沒法給你查。文件夾是google約定俗成的,不同廠家應該都是一樣的路徑。如果是廠家定製的應用則是在/system分區下,路徑應該是/system/app下。

如果你是一個android系統學習者,而不是應用開發者的話,我建議看看以下system/etc/initrc對於你會有很大的幫助。

2. 獲取android手機的自帶存儲路徑和sdcard存儲路徑

android手機獲取自帶存儲來路徑和sd卡存儲路徑的方式是:調用Environment.getExternalStorageDirectory(),返回的存儲源目錄並不是系統內置的SD卡目錄。
1.一部分手機將eMMC存儲掛載到
/mnt/external_sd
、/mnt/sdcard2
等節點知,而將外置的SD卡掛載到
Environment.getExternalStorageDirectory()這個結點。
此時,調用Environment.getExternalStorageDirectory(),則返回外置的SD的路徑。
2.而另一部分手機直接道將eMMC存儲掛載在Environment.getExternalStorageDirectory()這個節點,而將真正的外置SD卡掛載到/mnt/external_sd、/mnt/sdcard2
等節點。
此時,調用Environment.getExternalStorageDirectory(),則返回內置的SD的路徑。

3. android 幾種不同路徑的獲取方法

前兩個應用內部存儲通過 Context 來獲取, 第三個作為外部存儲是通過 Environment 類來獲取. 注釋為返回值.

  • /data/data/包名/

    context.getFilesDir(); // /data/data/包名/filescontext.getCacheDir(); // /data/data/包名/cache
  • /sdcard/Android/data/包名/

    context.getExternalFilesDir(); // /sdcard/Android/data/包名/filescontext.getExternalCacheDir(); // /sdcard/Android/data/包名/cache
  • /sdcard/xxx

    // /storage/emulated/0Environment.getExternalStorageDirectory();// /storage/emulated/0/DCIM, 另外還有MOVIE/MUSIC等很多種標准路徑Environment.(Environment.DIRECTORY_DCIM);
  • 注意, 根據源碼文檔中說明, 獲取外部存儲時, 有可能會因為各種問題導致獲取失敗, 建議先使用 getExternalStorageState 來判斷外部存儲狀態, 如果已掛載的話再存儲.

4. android獲取應用安裝之後的路徑

Log.d(TAG," this.getFilesDir().getParent()"+this.getFilesDir().getParent());

this.getFilesDir().getParent()/data/user/0/com.xxx.xxx

com.xxx.xxx為該應用的包名

以後就不用另行去判斷是真機還是模擬器的安裝之後文件的路徑了

 該方法直接返回安裝之後包所在的路徑

手機無法直接查看應用安裝之後 應用寶所在的具體路徑的 可以root之後 或者開發工具Android Studio點擊Device File Explorer等方法查看 

5. 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文件夾,我們可以指定子文件夾

6. 如何獲取Android系統掛載U盤的路徑

最近項目開發中碰到這樣一個需求:用戶在定製的 Android 設備上插入 U 盤,然後在應用內導入 U 盤里的文件內容。

問題在於如何獲取 U 盤的路徑,網上搜索後大多數都是採用廣播監聽的方式來獲取 U 盤的路徑。但是如果 U 盤在設備開機之前就插著,這樣登錄應用後就獲取不到 U 盤的路徑了,於是乎此種方法作罷。

這時候同事告訴了另外一種方法,就是從文件中讀取路徑。

U 盤在插入系統後,如果系統檢測到 U盤,便會在系統的 proc 目錄的 mounts 文件內產生一條記錄。

可以看到該文件記錄了 U 盤每一次插入的相關信息(看不清楚?好吧,我摘取其中的一條用日誌列印出來如下)。

最後,可能有小夥伴會問「既然是定製的 Android 設備,第一次插入的時候不是知道了 U 盤的路徑了嗎,只要以後寫死這個路徑不就好了嗎」。好吧,其實當時我也是這么想的,但是實際上每次插拔 U 盤,路徑是不斷變化的,而且仔細看上面那張大圖可以發現每條記錄的 U 盤掛載路徑都是不同的,這也是不能寫死路徑的原因。(PS:十分感謝同事「開志哥」在項目中給予的幫助)

7. 怎麼將android 讀取文件路徑進行更改

android
sdk
安裝後默認會在我的文檔里生成一個.android文件夾,這個及時你的默認路徑.android\avd
打開一個。ini的
配置文件
target=android-7
path=(這就是你要修改的路徑)C:\
Documents
and
Settings\
Administrator
\.android\avd\test.avd

8. Android開發中,獲取U盤或SD卡路徑。

@SuppressLint("PrivateApi")

    private String getStoragePath(Context context, boolean isUsb){

        String path="";

        StorageManager mStorageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);

        Class<?> volumeInfoClazz;

        Class<?> diskInfoClaszz;

        try {

            volumeInfoClazz = Class.forName("android.os.storage.VolumeInfo");

            diskInfoClaszz = Class.forName("android.os.storage.DiskInfo");

            Method StorageManager_getVolumes=Class.forName("android.os.storage.StorageManager").getMethod("getVolumes");

            Method VolumeInfo_GetDisk = volumeInfoClazz.getMethod("getDisk");

            Method VolumeInfo_GetPath = volumeInfoClazz.getMethod("getPath");

            Method DiskInfo_IsUsb = diskInfoClaszz.getMethod("isUsb");

            Method DiskInfo_IsSd = diskInfoClaszz.getMethod("isSd");

            List<Object> List_VolumeInfo = (List<Object>) StorageManager_getVolumes.invoke(mStorageManager);

            assert List_VolumeInfo != null;

            for(int i=0; i<List_VolumeInfo.size(); i++){

                Object volumeInfo = List_VolumeInfo.get(i);

                Object diskInfo = VolumeInfo_GetDisk.invoke(volumeInfo);

                if(diskInfo==null)continue;

                boolean sd= (boolean) DiskInfo_IsSd.invoke(diskInfo);

                boolean usb= (boolean) DiskInfo_IsUsb.invoke(diskInfo);

                File file= (File) VolumeInfo_GetPath.invoke(volumeInfo);

                if(isUsb == usb){//usb

                    assert file != null;

                    path=file.getAbsolutePath();

                }else if(!isUsb == sd){//sd

                    assert file != null;

                    path=file.getAbsolutePath();

                }

            }

        } catch (Exception e) {

            YYLog.print(TAG, "[——————— ——————— Exception:"+e.getMessage()+"]");

            e.printStackTrace();

        }

        return path;

    }

9. android 怎麼獲取手機文件路徑

用 /mnt 獲取全部掛載的存儲路徑。 mnt/sdcard和mnt/sdcard1一個是系統存儲路徑一個是SD卡存儲路徑。

10. Android 常用路徑的獲取

由於歷史原因,Android 歷史上一些路徑並不固定(也和外存設備的變更有關)。

沒法通過固定的路徑訪問一些文件,需要通過不同的介面獲取路徑。

一些常用路徑如下:

訪問該路徑的方法:

熱點內容
吃雞低配置手機如何開極致畫質 發布:2025-05-16 18:15:20 瀏覽:191
空密碼訪問 發布:2025-05-16 18:08:51 瀏覽:892
騰訊雲伺服器安全規則設置 發布:2025-05-16 17:51:33 瀏覽:650
k3伺服器不可用怎麼辦 發布:2025-05-16 17:51:30 瀏覽:537
編輯html源碼 發布:2025-05-16 17:45:45 瀏覽:65
邊的存儲方法 發布:2025-05-16 17:33:16 瀏覽:927
海量伺服器怎麼拆 發布:2025-05-16 17:31:07 瀏覽:211
運行與編譯的區別 發布:2025-05-16 17:25:02 瀏覽:824
c語言for中continue 發布:2025-05-16 17:20:14 瀏覽:648
ftp儲存 發布:2025-05-16 17:04:08 瀏覽:506