【问题标题】:Android: Creating folder does not workAndroid:创建文件夹不起作用
【发布时间】:2017-06-29 17:47:06
【问题描述】:

我想拍照并保存在外部存储中,但文件夹创建失败。 权限已设置。

File folder = new File(Environment.getExternalStorageDirectory() + 
File.separator + "DCIM" + File.separator + "ScannerApp");
                if(!folder.exists()){
                    folder.mkdirs();
                }

请帮忙:)

【问题讨论】:

  • “文件夹创建失败”——您是如何准确地确定这一点的?
  • 您遇到了什么错误或异常?请把它放在你的问题中
  • 好的,我的问题问得不好。我想创建文件夹以在其中保存图片。如果我运行该代码,则不会在手机上创建文件夹,但我没有遇到任何异常或其他情况。只是不是文件夹
  • 如果您针对 MM 进行开发,您是否使用过运行时权限?它是自定义 rom,例如 lineage os?
  • MM是什么意思?

标签: android directory


【解决方案1】:

使用下面的代码初始化folder值:

File folder = new File(Environment.getExternalStorageDirectory(), "DCIM" + File.separator + "ScannerApp");

或

File folder = new File(new File(Environment.getExternalStorageDirectory(), "DCIM"), "ScannerApp");

【讨论】:

    【解决方案2】:

    替换这个

    File folder = new File(Environment.getExternalStorageDirectory() + 
    File.separator + "DCIM" + File.separator + "ScannerApp");
                    if(!folder.exists()){
                        folder.mkdirs();
                    }
    

    与

    File folder = new File(Environment.getExternalStorageDirectory().getPath() +
                        File.separator + "DCIM" + File.separator + "ScannerApp");
                if(!folder.exists()){
                    folder.mkdirs();
                }
    

    问题是您使用的是Environment.getExternalStorageDirectory(),它不会返回路径。使用Environment.getExternalStorageDirectory().getPath()获取路径。

    希望这会有所帮助。

    【讨论】:

    • 这不行,我得到一个错误:/storage/emulated/0/DCIM/com.my.application/(没有这样的文件或目录)跨度>
    • @Ganapolsky 您最后添加了一个额外的 / 。另外请检查您的设备是否允许您在 DCIM 目录中创建文件夹并且您已获得外部存储权限。
    • 我有一个 Google Pixel XL,所以它不让我
    • @IgorGanapolsky 抱歉回复晚了。检查您的手机是否允许其他应用程序在 DCIM 下创建文件夹。如果允许创建,请尝试使用您的应用在任何其他目录中创建文件夹。
    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 2017-05-23
    • 1970-01-01
    相关资源
    最近更新 更多