Android FileNotFound 可以读取并存在虚假媒体 whatsapp 文件
Android FileNotFound canread and exists false media whatsapp files
我正在尝试读取一个存在的文件,但我不能。谢谢!
File f = new File("/mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20180628-WA0000.jpg");
File sdDir = Environment.getExternalStorageDirectory();
Log.w("Whatsapp","#SDDIR CANREAD? "+ sdDir.canRead() +" PATH: "+ sdDir.getAbsolutePath());
f.setReadable(true,false);
Log.w("Whatsapp","#FILE: "+ f.getName() +" l:"+ f.length() +" exists:"+ f.exists() +" canRead:"+ f.canRead() +" PATH: "+ f.getPath() +" ABSOLUTE: "+ f.getAbsolutePath());
日志
#SDDIR CANREAD? false PATH: /storage/emulated/0
#FILE: IMG-20180628-WA0000.jpg l:0 exists:false canRead:false PATH: /mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20180628-WA0000.jpg ABSOLUTE: /mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20180628-WA0000.jpg
AndroidManifest 权限
<uses-permission android:name="ANDROID.PERMISSION.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="ANDROID.PERMISSION.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="ANDROID.PERMISSION.MANAGE_DOCUMENTS" />
首先,您没有对 removable storage.
的任意读写权限
其次,Android 中的大多数内容都区分大小写。因此,您的 <uses-permission>
元素将不起作用。
第三,不能持有MANAGE_DOCUMENTS
权限,普通应用是没有的
因此,您可以通过将现有的 <uses-permission>
元素替换为:
来修复您的清单
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
但是,您可能仍然无法访问该特定文件。
有效!
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
我正在尝试读取一个存在的文件,但我不能。谢谢!
File f = new File("/mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20180628-WA0000.jpg");
File sdDir = Environment.getExternalStorageDirectory();
Log.w("Whatsapp","#SDDIR CANREAD? "+ sdDir.canRead() +" PATH: "+ sdDir.getAbsolutePath());
f.setReadable(true,false);
Log.w("Whatsapp","#FILE: "+ f.getName() +" l:"+ f.length() +" exists:"+ f.exists() +" canRead:"+ f.canRead() +" PATH: "+ f.getPath() +" ABSOLUTE: "+ f.getAbsolutePath());
日志
#SDDIR CANREAD? false PATH: /storage/emulated/0
#FILE: IMG-20180628-WA0000.jpg l:0 exists:false canRead:false PATH: /mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20180628-WA0000.jpg ABSOLUTE: /mnt/sdcard/WhatsApp/Media/WhatsApp Images/IMG-20180628-WA0000.jpg
AndroidManifest 权限
<uses-permission android:name="ANDROID.PERMISSION.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="ANDROID.PERMISSION.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="ANDROID.PERMISSION.MANAGE_DOCUMENTS" />
首先,您没有对 removable storage.
的任意读写权限其次,Android 中的大多数内容都区分大小写。因此,您的 <uses-permission>
元素将不起作用。
第三,不能持有MANAGE_DOCUMENTS
权限,普通应用是没有的
因此,您可以通过将现有的 <uses-permission>
元素替换为:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
但是,您可能仍然无法访问该特定文件。
有效!
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>