【发布时间】:2013-09-03 13:15:58
【问题描述】:
我正在尝试创建一个文件,该文件最终将包含这样的图片 (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。无法创建文件..
【问题讨论】:
-
可能是该文件处于隐藏模式尝试将其重命名为其他名称..
-
好吧尝试不同的静态名称“test.jpg”。我现在可以得出结论,该文件没有被创建..
-
.createNewFile() 方法返回 false,但我似乎不明白为什么..
-
你的清单有写权限吗?
-
是的。我有读写权限。
标签: android file bitmap directory bitmapfactory