Android如何在images目录下创建我们自己的文件夹?

时间:2016-01-26 16:29:54

标签: android

我们有一款可下载图片并将其存储在设备上的应用。图像已存储,但我们打开图库时无法看到我们的应用文件夹。这是我们用来创建目录的代码:

public File getDataFolder(Context context) {
    File dataDir = null;
    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
        dataDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + File.separator + "MYAPPNAME");

        if(!dataDir.isDirectory()) {
            dataDir.mkdirs();
        }
    }
    if(!dataDir.isDirectory()) {
        dataDir = context.getFilesDir();
    }

    return dataDir;
}

我们也注意到,文件夹在Jelly bean中可见,但在KitKat +设备中不可见。为什么它在画廊中不可见? (文件为.jpg格式)

3 个答案:

答案 0 :(得分:1)

您是否尝试过使用getExternalFilesDirs()?

  

使用getExternalFilesDirs()(注意复数)。如果返回多个条目,则第二个和后续条目位于可移动媒体上。您可以在Android 4.4上无需任何权限即可读取和写入的目录。

从这个答案https://stackoverflow.com/a/26006099/5837758

修改

如果重新启动后出现该文件夹,则需要将图像添加到图库中。从拍摄照片简单教程(http://developer.android.com/training/camera/photobasics.html):

timeoutModal = $modal({
templateUrl: 'components/common/timeout.html',
                controller: 'TimeoutController as time',
                backdrop: 'static',
                prefixEvent: 'timeoutMessage',
                show: false
            });

答案 1 :(得分:0)

在Android Kitkat之前,第三方应用程序可以访问外部存储,但是来自Kitkat,此权限已被撤销。现在,您只能将数据存储在设备的内部存储器中。

答案 2 :(得分:0)

您必须在新文件上调用媒体扫描程序,该文件在图库中可见而不重新启动。在保存文件后调用媒体扫描程序。

只需几行代码即可。代码已经在本网站上发布。