gpt4 book ai didi

android - 为什么我不能在 Environment.DIRECTORY_PICTURES 中创建一个目录?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:44:34 25 4
gpt4 key购买 nike

这是我的代码

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);
}

基本上我想做的是在标准目录中创建我自己的可定制目录,在其中放置用户可用的图片。

我查看了相关主题并看到了这个,Android: unable to create a directory in default pictures folder .但是,我确保我调用了 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");
}

我单步执行我的代码,发现即使在调用 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>

android.permission.READ_EXTERNAL_STORAGE 目前不需要,但是 it will be在未来的 Android 版本中。

关于android - 为什么我不能在 Environment.DIRECTORY_PICTURES 中创建一个目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27165492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com