我正在尝试创建一个最终将保存图片(EXTRA_OUTPUT)的文件,如下所示:
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "scouthouse");
if(!mediaStorageDir.exists()) {
mediaStorageDir.mkdirs();
}
SimpleDateFormat s = new SimpleDateFormat("ddMMyyyyhhmmss");
String format = s.format(new Date());
File file = new File(mediaStorageDir.getPath() + File.separator + format + ".jpg");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
mediaStorageDir.exists() 返回 true,但我在 windows 中找不到该文件夹。位置是 sdcard0/Pictures/scouthouse/。我确实有一个 Pictures/ 文件夹,但 Android 不会创建 /scouthouse/ 文件夹。当我尝试使用 Bitmapfactory 解码文件时,它返回 null。
编辑!
因此,我稍微简化了该方法以深入了解根目录,并且基本上具有以下功能:
private void createDir() {
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "scouthouse");
if(!file.mkdirs()) {
Log.d("file", "file not created");
}
}
这将创建一个文件目录,并且第一次没有记录日志。所以该目录已经创建,但是我在任何地方的手机文件系统上都找不到它。
private File createNewFile() {
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "scouthouse" + File.separator + "test.jpg");
try {
if(file.createNewFile()) {
Log.d("file", "yiss");
return file;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
此方法返回 null。无法创建文件。。