5

由于某种原因,无法在 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" 
4

3 回答 3

9

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

于 2013-06-10T20:16:44.837 回答
0

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

于 2014-04-02T17:32:33.330 回答
0

不要忘记WRITE_EXTERNAL_STORAGE明确请求许可。以下是如何做到这一点:https ://developer.android.com/training/permissions/requesting

于 2018-10-18T14:58:00.380 回答