精华内容
下载资源
问答
  • 我有一台中兴的Android手机,型号是 ZTE U930HD,手机没有插入外置SD卡(也就是Micro SD Card,原名Trans-flash Card(TF卡),2004年正式更名为Micro SD Card),但是机身自带了一个内置存储卡(也就是eMMC存储,大小为...

    我有一台中兴的Android手机,型号是 ZTE U930HD,手机没有插入外置SD卡(也就是Micro SD Card,原名Trans-flash Card(TF卡),2004年正式更名为Micro SD Card),但是机身自带了一个内置存储卡(也就是eMMC存储,大小为2G)。

    我把这个手机用数据线插到电脑上,也会看到盘符,通过安装「R.E 管理器」等文件管理应用,也可以管理文件,并且能看到该存储的挂载目录是:/mnt/sdcard2

    但是,

    我打印 Environment.getExternalStorageState(),却返回 ”removed“;

    这是怎么回事?明明手机本身带着内置SD卡,却为何提示这么一个信息?

    我又试着去打印了Environment.getExternalStorageDirectory(),返回:“/mnt/sdcard”

    看起来可以解释了,在我这个中兴手机上,调用Environment.getExternalStorageDirectory(),返回的存储目录并不是系统内置的SD卡目录。

    我又换了一个 Sony L39u,一个 MOTO G,调用Environment.getExternalStorageDirectory()返回的目录就是系统内置的SD卡目录。

    不同的设备上,调用getExternalStorageDirectory()返回值却不一样。查询了Android的文档,才找到原因,原来这个方法返回的是当前设备厂商所认为的“外部存储”,有可能返回外置的SD卡目录(Micro SD Card),也可能返回内置的存储目(eMMC)。

    总结一下:

    一部分手机将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卡的时候,获取到这个内置eMMC存储的具体路径呢?

    比如,我这个中兴手机,既然使用 Environment.getExternalStorageDirectory() 获取到的是外置SD卡路径,但是我又没有插入SD卡,这个时候我想使用内置的eMMC存储来存储一些程序中用到的数据,我怎么去获取这个eMMC存储的路径呢?

    答案是:通过扫描系统文件"system/etc/vold.fstab”来实现。

    "system/etc/vold.fstab” 只是一个简单的配置文件,它描述了Android的挂载点信息。

    我们可以遍历这个文件来获取所有的挂载点:

    /**

    * 遍历 "system/etc/vold.fstab” 文件,获取全部的Android的挂载点信息

    *

    * @return

    */

    private static ArrayList getDevMountList() {

    String[] toSearch = FileUtils.readFile("/etc/vold.fstab").split(" ");

    ArrayList out = new ArrayList();

    for (int i = 0; i 

    if (toSearch[i].contains("dev_mount")) {

    if (new File(toSearch[i + 2]).exists()) {

    out.add(toSearch[i + 2]);

    }

    }

    }

    return out;

    }

    之后,当 Environment.getExternalStorageState()返回“removed”的时候(即,当没有挂载外置SD卡的时候),通过getDevMountList()方法获取一个list,这个list中可以进行写操作的那个就是系统自带的eMMC存储目录了。

    判断逻辑:

    /**

    * 获取扩展SD卡存储目录

    *

    * 如果有外接的SD卡,并且已挂载,则返回这个外置SD卡目录

    * 否则:返回内置SD卡目录

    *

    * @return

    */

    public static String getExternalSdCardPath() {

    if (SDCardUtils.isMounted()) {

    File sdCardFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath());

    return sdCardFile.getAbsolutePath();

    }

    String path = null;

    File sdCardFile = null;

    ArrayList devMountList = getDevMountList();

    for (String devMount : devMountList) {

    File file = new File(devMount);

    if (file.isDirectory() && file.canWrite()) {

    path = file.getAbsolutePath();

    String timeStamp = new SimpleDateFormat("ddMMyyyy_HHmmss").format(new Date());

    File testWritable = new File(path, "test_" + timeStamp);

    if (testWritable.mkdirs()) {

    testWritable.delete();

    } else {

    path = null;

    }

    }

    }

    if (path != null) {

    sdCardFile = new File(path);

    return sdCardFile.getAbsolutePath();

    }

    return null;

    }

    展开全文
  • app需要播放安卓平板中的视频文件。 在mainactivity中获取指定文件夹中的所有文件地址。 try { string filepath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/hcvideo"; ...

    app需要播放安卓平板中的视频文件。

    在mainactivity中获取指定文件夹中的所有文件地址。

                try
                {
                    string filepath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/hcvideo";
                    string[] items = System.IO.Directory.GetFiles(filepath);
                    HcCustomApp.MainPage.videofiles = items;
                }
                catch (System.Exception excp)
                {
                    XamarinApp.StandardLib.Config.WriteLog($"未发现视频路径或文件: {excp.Message}");
                }

    Android.OS.Environment.ExternalStorageDirectory.AbsolutePath 获取出来的结果是 storage/emulated/0,

    用手机测试的时候,将视频拷贝到内部存储/storage/emulated/0/hcvideo中,一直提示找不到路径。

    后来,比对文件才发现,原来Android.OS.Environment.ExternalStorageDirectory.AbsolutePath 代表的是根目录,也就是到内部存储为止。所以,要将视频拷贝到    内部存储/hcvideo中,就OK了。

    展开全文
  • 一、文件夹1./acct/ 系统回收站,删除的系统文件。2./cache/ 缓存3./data/ 用户的所有程序相关数据app/ 所有用户安装的apk文件app-private/data/ 每一个应用的数据com.xx.appname/ 每一个应用的数据都存放在本目录下...

    一、文件夹

    1./acct/ 系统回收站,删除的系统文件。

    2./cache/ 缓存

    3./data/ 用户的所有程序相关数据

    app/ 所有用户安装的apk文件

    app-private/

    data/ 每一个应用的数据

    com.xx.appname/ 每一个应用的数据都存放在本目录下的一个以包名为命名的文件夹

    cache/

    lib/

    files/

    shared_prefs/

    system/ 安装app会在这里进行注册表的配置

    package.xml 注册表xml

    lost+found/

    4./proc/ 运行时的文件

    5./dev/ 设备文件,Linux系统常规文件夹,里面的文件很多都是设备模拟的文件系统

    6./storage/ 手机存储设备

    sdcard0/ 第一块SD存储卡

    7./firmware/

    8./mnt/ 挂载点

    adcard0/ 存储卡挂载目录

    udisk/ U盘挂载目录

    9./sys/ Linux 内核文件

    10./system/ Android 系统文件

    app/ 存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。

    bin/ 这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件(命令)

    etc/ android系统的配置文件,比如APN接入点设置等核心配置。

    fonts/ 这里面保存着系统的字体,标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库,从T-Mobile G1上可以清楚的看到显示简体中文正常.如果你有root权限,可以往里添加自己喜欢的字体,比如雅黑。

    framework/ 主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。

    lib/ 里面保存的是系统底层类库,里面很多都是框架层的实现文件,一般以.so后缀结尾类似windows下的dll文件

    usr/ 用户文件夹,包含共享、键盘布局、时间区域文件等。

    xbin/

    media/

    audio/ 保存着安卓系统默认的铃声

    alarms/ 闹铃提醒

    notificatinos/ 短信或提示音

    rignstones/ 来电铃声

    ui/ 界面音效,比如键盘敲击声

    lockscreen/

    theme/

    wallpaper/

    lost+found/

    vendor/

    11./sbin/ 系统工具,比如 ps/cp/pm 等

    展开全文
  • 百度得到安卓手机wifi存储地址data/misc/wifi/wpa_supplicant.conf,百度网盘下载巨久之后,下载打开文件,点开data,里面什么也没有,然后利用软件直接搜索wpa_supplicant.conf,得到这个题文件路径是"手机取证\...

    百度得到安卓手机wifi存储地址data/misc/wifi/wpa_supplicant.conf,百度网盘下载巨久之后,下载打开文件,点开data,里面什么也没有,然后利用软件直接搜索wpa_supplicant.conf,得到这个题文件的路径是"手机取证\mnt\shell\emulated\0\data",记事本或者notepad打开,ssid为wifi名,psk为wifi密码
    image.png

    展开全文
  • 自己学着写了一个调用安卓相机拍照的程序,但是拍下来的照片总是存储在手机默认的文件夹中,我在程序中已经自己设置了文件存储路径,但是,不知道为什么,拍完照却存不进去!!!???
  • 安卓存储

    2018-06-29 16:41:04
    安卓文件永久存储分内部存储和外部存储。这里存储指ROM(断电仍记忆)而非运行内存(RAM断电记忆丢失)。 分类 内部存储(internal storage) 外部存储(external storage) external storage SDCard...
  • uniapp文件操作依赖IO模块,网上很多小白都不知道怎么下载文件手机自定义目录, 看官方文档下载文件永久保存uni.downloadFile和uni.saveFile,文件存放的位置开始时临时的,转成永久的后 它保存的位置在 “内部...
  • 近期在写毕业设计的时候,需要实现从安卓8.0的手机内置存储卡读取文本文件的数据内容,但在开始的时候一直抛出FileNotFoundException,显示找不到文件。 先贴出我读取文件的方法: //-----------------------------...
  • 文章目录安卓内部存储和外部存储内部存储路径特点Java代码保存读取外部存储路径Java代码保存读取 安卓内部存储和外部存储 内部存储 路径 特点 默认只能被创建它的应用访问到 当这个应用卸载后,内部存储中的文件也...
  • 可能是我这个手机的问题,今天我用同学的代码,结果在他的手机上就能获取到音乐,然后将代码下载到我的荣耀7 上就不行,我又把代码下到另外一个同学荣耀8 的手机上,结果也不行,果然是手机的问题,并不是代码的问题...
  • 但是用工具写好的sqlite数据库文件,怎么随着unity打包到安卓手机里呢?路径是什么? 我做了个小项目,就遇到了这个问题。 首先,我们先做一下准备工作: 我往unity里导入SQLite的三个dll文件,分别是S
  • Android 文件存储策略

    2017-03-21 19:36:55
    Android的文件存储有两种类型: 内部存储 和 外部存储 。首先来确定下一些易混淆的概念: 内部存储 不是内存,内部存储位于系统中很特殊的一个位置。 外部存储 不一定是 SD 卡, 机身存储也是外部存储。比如 ...
  • 我觉得安卓不像Windos一样分盘,而是只有一个盘,大家(内部和外部存储)一起用,只是大家路径不一样,比如我现在手机还剩6G空间,我往内部存储里放5个G文件也是可以正常使用的(这是猜测,没有实践, 很可能是错的)...
  • 火山安卓文本文件读写命令操作介绍 一、写文件操作 1、写文件用的是“写出文件”命令,这个命令共有三个参数。 2、参数1:保存文件的完整路径 3、参数2:要保存的字节数组。 4、参数3:是否覆盖文件。 ...
  • 安卓手机修改系统字体教程: 注意:字体替换之后如果会出现“口口口”现象的话,一般是因为你没有修改权限引起的,大家一定要注意!具体字体的形状将不再阐述,大家可以百度,尽管不是所有都合你的口味,总有些是...
  • 安卓文件读写操作

    2019-09-30 03:54:22
    注: 在Activity中有 getFileDir() 和 getCacheDir(); 方法可以获得当前的手机自带的存储空间中的当前包文件路径getFileDir() ----- /data/data/cn.xxx.xxx(当前包)/filesgetCacheDir() ----- /dat...
  • 安卓重复文件搜索工具 Search Duplicate File 中文特别版Windows 10 Manager 中文版 什么是重复文件? 从互联网下载两次或以上的音乐,照片,视频或应用程序。 通过蓝牙接收的文件两次或更多次。 缓存的图像或缩略图...
  • 安卓手机上 动态存储了一个.png文件到 Application.persistentDataPath路径下,使用File.Exists()方法判断 文件存在,打开安卓手机上的对应文件夹 也可以看到这张照片,但是在Unity中加载的时候 一直加载不成功...
  • 注意:安装应用程序后,安卓用户如发现程序无法访问文件系统,请检查手机的权限设置,确保给了程序相应的权限,程序以系统设置的默认存储位置根目录为路径访问起点 程序在以下情况均可工作: 手机-手机(WiFi) ...
  • 安卓手机查看java源码*** 此存储库已弃用。 查看当前版本的 RiTa 。 *** RiTa:生成语言工具包 RiTa 旨在成为一个易于使用的工具包,用于自然语言和生成文学的实验。 它是用 Java 和 JavaScript 实现的(两者都有...
  • 思路是:先用 Environment.getExternalStorageDirectory()获得外部存储路径(某些机型也表现为内部存储路径),如没有获 取到有效sd卡插入,则使用安卓的配置文件system/etc/vold.fstab读取全部挂载信息,假如
  • 文件上传下载

    2020-11-26 13:48:48
    安卓手机-腾讯qq-文件下载路径 /Android/data/com.tencent.mobileqq/Tencent/QQfile_recv 安卓手机-微信-文件下载路径 /Android/data/com.tencent.mm/MicroMsg/Download 安卓手机-微信-对文件操作“保存到手机”...
  • 安卓系统中可以安装ES文件浏览器来获得。如果找不到这个路径,或者显示为空,也可以转发到另一台安卓机上的微信号,在那台打开后再保存下来。 手机存储目录/Android/data/com.tencent.mm/MicroMsg/Download/ ...
  • Qt音视频开发13-mpv录像存储

    千次阅读 2020-08-19 15:07:01
    用mpv来做录像存储,保存视频文件,从来都没有如此的方便,直接设置属性stream-record对应的文件路径即可,我的乖乖,一行代码,如此精简美丽大方,搞得我都不敢相信自己的眼睛,mpv除了支持主流的win、linux、mac三...
  • Android_内部文件读取

    2017-11-08 08:47:00
    首先我们先明确安卓存储路径,所有安装至手机的应用都会在 data/data 目录下生成一个安卓文件夹(包名),这个文件夹就是安卓存储的路径 在运行安卓程序时,按home键不会销毁Activity,但是返回键会销毁Activity ...
  • 最近在看写APP记录到存储卡的类时,突然发现写日志的路径是 : Environment.getExternalStorageDirectory()+“app_log/log.txt”但是在手机上查看时却是在手机内部存储里面找到日志文件:瞬间感觉不是说好的外部...

空空如也

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

安卓手机文件存储路径