简体   繁体   English

在/ data / media / 0中找不到文件,但在/ storage / emulated / 0中找到文件

[英]File not found in /data/media/0, but found in /storage/emulated/0

I use the smartphone emulator in Android Studio for a Nexus 4, API 23. 我将Android Studio中的智能手机模拟器用于Nexus 4,API 23。

I took a picture through its camera, and I can check that the file is present at this different paths through the Android Device Monitor: 我通过相机拍摄了照片,并且可以通过Android设备监视器检查文件是否位于以下不同路径中:

/data/media/0/DCIM/Camera/IMG_20160408_143726.jpg (rw-rw-r)
/storage/emulated/0/DCIM/Camera/IMG_20160408_143726.jpg (rw-rw)

Android设备监视器

Nevertheless, in my Activity I got different behaviors when I try to read the file: 不过,在尝试读取文件时,在“ Activity我有不同的行为:

new File("/data/media/0/DCIM/Camera/IMG_20160408_143726.jpg");
// isFile at false, canRead at false, length at 0

new File("/storage/emulated/0/DCIM/Camera/IMG_20160408_143726.jpg");
// isFile at true, canRead at true, length with a real value

Why is it so? 为什么会这样呢?

它取决于构造器,而是使用此方法获取sdcard路径,它将为所有设备找到正确的路径

new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera/IMG_20160408_143726.jpg")

You probably would like to grant your app root permission so as to let it work properly. 您可能想授予您的应用程序root权限,以使其正常运行。 Take a look at this example: 看一下这个例子:

u0_a1@android:/ $ toolbox ls -l /storage/emulated/0/UPDATE*
-rw-rw---- root    sdcard_r  4997896 2016-09-08 20:08 UPDATE-SuperSU-v2.78.zip
u0_a1@android:/ $ toolbox ls -l /data/media/0/UPDATE*
/data/media/0/*: Permission denied
1|u0_a1@android:/ $ su
root@android:/ # toolbox ls -l /data/media/0/UPDATE*
-rw-rw-r-- media_rw media_rw  4997896 2016-09-08 20:08 UPDATE-SuperSU-v2.78.zip

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在“/storage/emulated/0/Pictures/”中找不到文件 - File not found inside "/storage/emulated/0/Pictures/" Android / storage / emulated / 0和/ data / media / 0不同的权限 - Android /storage/emulated/0 and /data/media/0 different permissions 找不到用于处理意图的活动{act = android.intent.action.PICK dat = [null,/ storage / emulated / 0 / WhatsApp / Media / WhatsApp视频] - No Activity found to handle intent { act=android.intent.action.PICK dat=[null, /storage/emulated/0/WhatsApp/Media/WhatsApp Video] 如何将非媒体文件从 /storage/emulated/0/Download 移动到 getExternalFilesDir() - How to move a non media file from /storage/emulated/0/Download to getExternalFilesDir() 找不到文件异常:java.io.FileNotFoundException:/storage/emulated/0/image.jpg:打开失败:ENOENT(没有此类文件或目录) - File not found exception:java.io.FileNotFoundException: /storage/emulated/0/image.jpg: open failed: ENOENT (No such file or directory) FileSystemException:无法打开文件,路径 = '目录:'/storage/emulated/0/Android/data/ - FileSystemException: Cannot open file, path = 'Directory: '/storage/emulated/0/Android/data/ `/ storage / emulated / legacy /`vs` / storage / emulated / 0 /`vs`data / data / myApp' - `/storage/emulated/legacy/` vs `/storage/emulated/0/` vs `data/data/myApp' 找不到媒体播放器文件异常 - Media Player File not found exception /storage/emulated/0/Notes/(没有那个文件或目录)? - /storage/emulated/0/Notes/ (No such file or directory)? Android:在外部存储设备上找不到文件 - Android: File not found on external storage
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM