Android无法在外部存储上创建新目录

时间:2013-06-10 19:52:48

标签: java android file directory mkdir

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

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

不要忘记明确要求WRITE_EXTERNAL_STORAGE权限。 这样做的方法如下:https://developer.android.com/training/permissions/requesting