应用程序不会创建新目录

时间:2013-08-16 09:03:27

标签: java android file-io

我正在制作录音机应用程序。应用程序应该记录文件并将其保存在外部存储目录中。这就是我尝试这样做的方式:

声明一些全局变量:

String externalStoragePath = Environment.getExternalStorageDirectory().getAbsolutePath();
String outputPath = externalStoragePath + "/Android/data/com.whizzappseasyvoicenotepad/no_name.mp3"; //output path for mp3 files
File appDirectory = new File(externalStoragePath + "/Android/data/com.whizzappseasyvoicenotepad"); //this is the directory I want to create when app is started for the first time

很少登录onCreate来检查externalStorage是否正常并且正常工作:

Log.i("TAG", "External storage directory: " + externalStoragePath);
Log.i("TAG", "External storage state: " + Environment.getExternalStorageState());

日志表示外部存储完全正常(存储/模拟/ 0)并且状态为已安装。

然后我尝试创建目录,如果它还不存在:

if (!appDirectory.exists())
    {
        try {
            appDirectory.createNewFile();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

我知道如果设备通过USB线连接到PC,外部存储无法正常工作,因此我从USB中删除设备并运行应用程序,但文件夹未按原样创建。什么都没发生。

3 个答案:

答案 0 :(得分:1)

您需要使用mkdir()而不是createNewFile():

 appDirectory.mkdir();

还需要在AndroidManifest.xml中设置权限:

 android.permission.WRITE_EXTERNAL_STORAGE

答案 1 :(得分:0)

在Android Manifest中加入android.permission.WRITE_EXTERNAL_STORAGE权限。

答案 2 :(得分:0)

以下是我创建目录的示例代码:

File dir = new File(Environment.getExternalStorageDirectory() + "/myFoler");
        if(!(dir.exists() && dir.isDirectory())){
            dir.mkdir();
        }

并且不要忘记WRITE_EXTERNAL_STORAGE文件

中的Manifest权限