我正在制作录音机应用程序。应用程序应该记录文件并将其保存在外部存储目录中。这就是我尝试这样做的方式:
声明一些全局变量:
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中删除设备并运行应用程序,但文件夹未按原样创建。什么都没发生。
答案 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
权限