我正在尝试创建一个最终会保存图片的文件(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 /。我有一个图片/文件夹但Android没有创建/ scouthouse /文件夹。 当我尝试使用Bitmapfactory解码文件时,它返回null。
EDIT!
所以我已经简化了一下这个方法,以便深入到根,并且基本上有这个:
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。无法创建文件..
答案 0 :(得分:1)
mediaStorageDir.exists()返回true,但我在Windows中找不到该文件夹。
可能是因为MediaStore
不了解目录,因此与Windows的MTP连接不知道该目录。你可以尝试使用MediaScannerConnection
和scanFile()
来解决这个问题,尽管我只是尝试过文件,而不是目录。此外,即使在建立索引之后,您可能需要从资源管理器窗口执行“刷新”,或断开/重新连接设备,因为Windows可能会缓存MTP结果,即使Android知道它也不会检测到更改。