当前位置:首页 » 安卓系统 » 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/…

热点内容
安卓默认打开文件方式怎么修改 发布:2025-07-01 23:30:38 浏览:861
压缩机接线座 发布:2025-07-01 23:17:48 浏览:662
iqoo浏览器缓存路径 发布:2025-07-01 23:12:38 浏览:691
明日之后如何获得最新服务器 发布:2025-07-01 23:12:35 浏览:50
tv加密频道 发布:2025-07-01 23:10:58 浏览:623
如何找到5d4通信密码 发布:2025-07-01 23:03:35 浏览:233
华为pop服务器地址怎么填 发布:2025-07-01 23:02:44 浏览:461
访问量赚钱 发布:2025-07-01 22:47:58 浏览:381
卫士开门软件原始密码是多少 发布:2025-07-01 22:42:17 浏览:956
elp编程 发布:2025-07-01 22:39:21 浏览:103