com*_*der 5 android external mkdir
这是我的代码
File selfieLocation = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES),
"Daily Selfies");
boolean isDirectory = false;
if(!selfieLocation.isDirectory()) {
//Creates directory named by this file
selfieLocation.mkdir();
isDirectory = selfieLocation.isDirectory();
}
//array of strings
for(String selfiePath: selfieLocation.list()) {
selfies.add(selfiePath);
}
Run Code Online (Sandbox Code Playgroud)
基本上我要做的是在标准目录中创建我自己的可自定义目录,在该目录中放置可供用户使用的图片.
我看了相关的线程,看到了这个,Android:无法在默认图片文件夹中创建目录.但是我确保我调用了getExternal ....,而不仅仅是将Environment.DIRECTORY_PICTURES作为参数.我还在这里查看http://developer.android.com/guide/topics/data/data-storage.html#filesExternal,看到我有正确的方法调用/格式在外部存储器中创建可自定义的文件夹.文档的例子是
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), albumName);
if (!file.mkdirs()) {
Log.e(LOG_TAG, "Directory not created");
}
Run Code Online (Sandbox Code Playgroud)
我逐步完成了我的代码,看到即使在调用了selfieLocation.mkdir()之后,局部变量isDirectory也保持为false.有谁知道为什么这个目录无法创建?
尝试创建目录File#mkdirs(),而不是File#mkdir()。后者假设所有父目录都已就位,因此如果其任何父目录不存在,它将不会创建目录。
另外,请查看您在AndroidManifest.xml. 您需要以下权限才能读取/写入外部存储上的内容:
<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
...
</manifest>
Run Code Online (Sandbox Code Playgroud)
android.permission.READ_EXTERNAL_STORAGE目前不需要,但在 Android 的未来版本中将需要。
| 归档时间: |
|
| 查看次数: |
2076 次 |
| 最近记录: |