0

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

声明一些全局变量:

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 中删除了设备并运行应用程序,但文件夹没有按应有的方式创建。基本上什么都没有发生。

4

3 回答 3

1

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

 appDirectory.mkdir();

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

 android.permission.WRITE_EXTERNAL_STORAGE
于 2013-08-16T09:21:07.110 回答
0

android.permission.WRITE_EXTERNAL_STORAGE在您的 Android 清单中包含权限。

于 2013-08-16T09:04:47.620 回答
0

这是一个示例代码,我使用它创建了一个目录:

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

并且不要忘记文件中的WRITE_EXTERNAL_STORAGE权限Manifest

于 2013-08-16T09:29:37.567 回答