我试图创建目录和文件,以便可以存储从Internet下载的文件.但是,我无法在外部公共存储中创建目录和文件.如果我写入外部私有存储(应用程序的特定存储位置),则完全可以做到.
这是代码:
String storageDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getabsolutePath(); System.out.println(storageDirectory); file mediaDir = new file(storageDirectory); if (!mediaDir.exists()) { System.out.println(mediaDir.mkdirs()); System.out.println(mediaDir.isDirectory()); } file mediafile = new file(storageDirectory, "boga.jpg"); try { mediafile.createNewfile(); } catch (IOException e) { e.printstacktrace(); }
上面的代码导致:
09-13 05:33:45.258 5867-5867/? I/System.out﹕ /storage/0CED-0F09/Pictures
09-13 05:33:45.260 5867-5867 /? I / System.out:错误
09-13 05:33:45.260 5867-5867 /? I / System.out:错误
带有IOException(无此类文件或目录):
09-13 05:33:45.260 5867-5867/? W/System.err﹕ java.io.IOException: open Failed: ENOENT (No such file or directory)
09-13 05:33:45.260 5867-5867/? W/System.err﹕ at java.io.file.createNewfile(file.java:939)
09-13 05:33:45.260 5867-5867/? W/System.err﹕ at com.example.terabyte.tut1app.MainActivity.onCreate(MainActivity.java:78)
这是我的清单:
<?xml version="1.0" enCoding="utf-8"?>
<uses-permission androID:name="androID.permission.INTERNET" /><uses-permission androID:name="androID.permission.WRITE_EXTERNAL_STORAGE" /><application androID:allowBackup="true" androID:icon="@mipmap/ic_launcher" androID:label="@string/app_name" androID:theme="@style/Apptheme" > <activity androID:name=".MainActivity" androID:label="@string/app_name" > <intent-filter> <action androID:name="androID.intent.action.MAIN" /> <category androID:name="androID.intent.category.LAUNCHER" /> </intent-filter> </activity></application>
可能是什么问题?
解决方法:
事实证明,我完全可以在实际的智能手机设备(华为P8 API级别21,版本5.0)上写入外部存储目录.即使存储空间完全可用并且可以从仿真器内部进行浏览,但也不存储到仿真器的外部存储中.
这也帮助我确定了真实设备上的外部存储问题:https://stackoverflow.com/a/6311955/5330055
我不再急需对此解决方案,但是很高兴知道模拟器出了什么问题.
总结以上是内存溢出为你收集整理的android-无法在外部存储公共目录中创建目录全部内容,希望文章能够帮你解决android-无法在外部存储公共目录中创建目录所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)