【问题标题】:Android unable to create new directory on external storageAndroid无法在外部存储上创建新目录
【发布时间】:2013-06-06 13:41:28
【问题描述】:

由于某种原因,无法在 Android 外部存储中创建新目录,我假设我缺少某些东西但无法在下面发现它是我用来尝试创建目录的代码,任何帮助都会很长的路谢谢

Calendar calendarTime = Calendar.getInstance();

        String newFolder = "/NewFolder/videos";

        File newDirectory = new File(Environment
                .getExternalStorageDirectory().toString() + newFolder);

        newDirectory.mkdir();

        File file = new File(newDirectory,
                String.valueOf(calendarTime.getTimeInMillis()) + ".mp4");

        if (camcorderProfile.fileFormat == MediaRecorder.OutputFormat.THREE_GPP) {

            recorder.setOutputFile(file.getAbsolutePath());
        } else if (camcorderProfile.fileFormat == MediaRecorder.OutputFormat.MPEG_4) {

            recorder.setOutputFile(file.getAbsolutePath());
        } else {

            recorder.setOutputFile(file.getAbsolutePath());

        }

在我的清单中

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" 

【问题讨论】:

    标签: java android file directory mkdir


    【解决方案1】:

    File.mkdir() 只会在其父目录存在时创建目录。在这种情况下,您要创建的目录是“videos”,其父目录是“NewFolder”。如果“NewFolder”不存在,则不会创建“视频”。如果你想同时创建两个目录,你应该使用 File.mkdirs() 来代替。

    【讨论】:

    • 这很有道理!我现在试试!
    【解决方案2】:

    我遇到了 2 天没有创建文件夹的问题。代码很完美,尝试了多种代码选项,但都没有奏效。最终我通过设备重新启动 - Nexus 4 并重新连接到我的 Windows 7 笔记本电脑进行调试。我能够在 Windows 7 资源管理器中看到所有文件和目录。看起来这只是 Nexus 4 (kitkat) 没有刷新文件夹结构的问题,而且它在 Windows 7 资源管理器中也不可见,并且无法与我的应用程序一起使用。 同样在重新启动 Nexus 4 后,来自 call mediaRecorder.start() “无法启动”的错误也消失了,并且我的应用正在创建的所有文件和目录都出现了。

    【讨论】:

      【解决方案3】:

      不要忘记明确请求WRITE_EXTERNAL_STORAGE 许可。 操作方法如下:https://developer.android.com/training/permissions/requesting

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-06
        • 2018-03-11
        • 2020-12-22
        相关资源
        最近更新 更多