我遇到运行函数Mkdir()的问题。我该怎么办? 我已经添加了读/写权限:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" />
以下是我的代码段:
private File getTempFile(Context context)
{
File path;
//Find the dir to save cached images
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){
path=new File(android.os.Environment.getExternalStorageDirectory(),"/Tanker/Foto/");
}
else {
path=context.getCacheDir();
}
String pictureFileName = Long.toHexString(System.currentTimeMillis())+".jpg";
if (!path.exists())
{
path.mkdir();
}
return new File(path, pictureFileName);
}
请帮忙。
答案 0 :(得分:3)
path=new File(android.os.Environment.getExternalStorageDirectory(),"/Tanker/Foto/");
mkdir
不会创建完整路径。您必须使用mkdirs
作为
来自文档
创建此抽象路径名所指定的目录,包括any 必要但不存在的父目录。
e.g。
if (!path.exists()) {
path.mkdirs();
}
答案 1 :(得分:1)
创建此文件命名的目录,假设其父项存在。如果你还想创建缺少的父母,请使用mkdirs()。
请注意,此方法在失败时不会抛出IOException。呼叫者必须检查返回值。另请注意,如果目录已存在,则此方法返回false。如果要在返回时知道目录是否存在,请使用(f.mkdir()|| f.isDirectory())或者只是忽略此方法的返回值,只需调用isDirectory()。 返回
true if the directory was created, false on failure or if the directory already existed.
检查返回值 e,而不是找到问题的正确理由。