命名照片(日期)

时间:2013-02-26 14:26:51

标签: android android-camera android-photos

我正在为我拍摄照片的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();

任何人都可以帮忙吗?

2 个答案:

答案 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设备。