我正在为我拍摄照片的andorid开发一个应用程序。问题是我只能以毫秒为单位保存cone l conseguidor当前时间,我想把当前日期(dd / mm / yyyy)。
这是我的代码:
PictureCallback jpegCallback = new PictureCallback()
{
public void onPictureTaken(byte[] data, Camera camera)
{
FileOutputStream outStream = null;
try
{
outStream = new FileOutputStream(String.format("/mnt/extSdCard/Photos/%d.jpg", System.currentTimeMillis()));
outStream.write(data);
outStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
}
};
我试图把它,但不起作用我得到错误:
Calendar c = Calendar.getInstance();
String day = Integer.toString(c.get(Calendar.DATE));
String month = Integer.toString(c.get(Calendar.MONTH));
String year = Integer.toString(c.get(Calendar.YEAR));
String name = day + "/" + month + "/" + year + ".jpg";
String folder = "/mnt/extSdCard/Photos/";
String path = folder + name;
...
outStream = new FileOutputStream(String.format(path));
outStream.write(data);
outStream.close();
任何人都可以帮忙吗?
答案 0 :(得分:0)
您应该从Environment:
创建文件夹字符串String folder = Environment.getExternalStorageDirectory()+“/ Photos /”;
然后确保照片作为文件夹存在。否则,你就可以创造它。
答案 1 :(得分:0)
您不能在文件名中使用'/'。这被系统解释为一组目录,除非你提前创建了所有目录,否则你会收到这个错误。例如,如果是2014年1月1日,您的文件名将是: /mnt/extSdCard/Photos/01/01/2014.jpg。
您需要创建01/01目录,或者将分隔符更改为其他内容,例如“_”或“ - ”。
此外,如果没有至少使用白名单的设备,请不要硬编码/ mnt / extSdCard。它在很多很多设备上都不存在,包括所有Nexus设备。