마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

[화일저장] 현재시간을 화일명으로 지정하기

0 추천

private String dateName(long dateTaken){
    Date date = new Date(dateTaken);
    SimpleDateFormat dateFormat =
            new SimpleDateFormat("yyyy-MM-dd HH.mm.ss");
    return dateFormat.format(date)+".jpg";
}

private void savePicture() {

    sv.buildDrawingCache();
    Bitmap saveView = sv.getDrawingCache();
    File dir = new File(Environment.getExternalStorageDirectory(), "Pictures/SAB/" +dateName(System.currentTimeMillis()));
    if (!dir.exists())
        dir.mkdirs();
    FileOutputStream fos;
    try {
        fos = new FileOutputStream(dir.toString() + "1");
        saveView.compress(Bitmap.CompressFormat.JPEG, 100, fos);
        Toast.makeText(getApplicationContext(), "저장완료", Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(getApplicationContext(), "저장실패", Toast.LENGTH_SHORT).show();
    }

}

코드는 이렇습니다.

이전에 이미지 저장관련으로 도움을 많이 받았는데요. 또 오고 말았습니다.

다름이 아니고 파일을 저장할때 덮어지는 문제를 해결하기위해 랜덤 화일명을 할까 하다가 시간으로 하면 좋을것 같아서 위처럼 시도해봤는데요 저장완료라고 토스트는 뜨는데 폴더 들어가보면 아무런 화일도 없습니다. 

저 시간으로 하는 부분을 빼고 그냥 화일명 지정해주면 저장이 잘되네요.

어째서 제 어플 에서는 오류도 안뜨고 동작을 안하는지 미치겠네요 ㅠㅠ

호루스 (200 포인트) 님이 2016년 10월 17일 질문
호루스님이 2016년 10월 18일 수정

1개의 답변

0 추천

private String dateName(long dateTaken){
    Date date = new Date(dateTaken);
    SimpleDateFormat dateFormat =
            new SimpleDateFormat("yyyy-MM-dd HH.mm.ss");
    return dateFormat.format(date);
}

private void savePicture() {
    String date = dateName(System.currentTimeMillis());
    sv.buildDrawingCache();
    Bitmap saveView = sv.getDrawingCache();
    File dir = new File(Environment.getExternalStorageDirectory(), "Pictures/SAB/" + date);
       FileOutputStream fos;
    try {
        fos = new FileOutputStream(dir.toString() + ".jpg");
        saveView.compress(Bitmap.CompressFormat.JPEG, 100, fos);
        Toast.makeText(getApplicationContext(), "저장완료", Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(getApplicationContext(), "저장실패", Toast.LENGTH_SHORT).show();
    }

}

이렇게 하니까 저장 잘 되네요 

감사합니다.

호루스 (200 포인트) 님이 2016년 10월 17일 답변
호루스님이 2016년 10월 18일 수정
...