0

我正在为我拍照的andorid开发一个应用程序。问题是我只以毫秒为单位保存 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();

任何人都可以帮助我吗?

4

2 回答 2

0

您应该从 Environment 创建文件夹字符串:

字符串文件夹 = Environment.getExternalStorageDirectory() + "/Photos/";

然后确保照片作为文件夹存在。否则,您应该创建它。

于 2013-02-26T14:32:22.790 回答
0

您不能在文件名中使用“/”。系统将其解释为一组目录,除非您提前创建了所有目录,否则您将收到此错误。例如,如果是 2014 年 1 月 1 日,您的文件名将是:/mnt/extSdCard/Photos/01/01/2014.jpg。

您需要创建 01/01 目录,或者将分隔符更改为其他内容,例如“_”或“-”。

此外,如果没有至少要使用它的设备白名单,请勿对 /mnt/extSdCard 进行硬编码。它不存在于许多设备上,包括所有 Nexus 设备。

于 2013-02-27T23:14:11.880 回答