如何将文件写入外部存储(SD卡)

 zackcoolgirl_497 发布于 2023-02-03 11:15

我知道这可能已被多次回答,我已经搜索过,但我无法解决我的问题.每次我尝试写入SD卡时,它似乎都会进入内部存储.我的代码行很简单

File root = android.os.Environment.getExternalStorageDirectory(); 
File dir = new File (root.getAbsolutePath() +"/mydir");
dir.mkdirs();

当我转到"我的文件"时,该目录始终显示在/ storage/emulated/0中,而不是显示在SD卡上.我拥有清单中设置的所有权限.我有什么简单的东西吗?

PS我的设备是注3.我可以手动将文件复制到SD卡.

1 个回答
  • 如何将文件写入外部存储(SD卡)

    在大多数Android设备上,外部存储不是"sdcard".

    当我转到"我的文件"时,该目录始终显示在/ storage/emulated/0中,而不是显示在SD卡上

    那是因为/storage/emulated/0是外部存储.

    引用文档:

    每个Android兼容设备都支持可用于保存文件的共享"外部存储".这可以是可移动存储介质(例如SD卡)或内部(不可移动)存储.

    Android SDK几乎不支持其他存储位置,例如SD卡.Android 4.4有一点,如同一文档页面所述:

    有时,已经分配内部存储器分区以用作外部存储器的设备也可以提供SD卡插槽.当这样的设备运行Android 4.3及更低版本时,getExternalFilesDir()方法仅提供对内部分区的访问,并且您的应用程序无法读取或写入SD卡.但是,从Android 4.4开始,您可以通过调用getExternalFilesDirs()来访问这两个位置,该方法返回一个包含每个位置条目的File数组.阵列中的第一个条目被视为主要外部存储,您应该使用该位置,除非它已满或不可用.如果您想同时访问两个可能的位置,同时也支持Android 4.3及更低版本,请使用支持库的静态方法ContextCompat.getExternalFilesDirs().这也会返回一个File数组,但在Android 4.3及更低版本中只包含一个条目.

    2023-02-03 11:19 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有