2016-12-08 1 views
0

나는 this sound recorder 호 작업을 진행하고 있습니다. 다시 녹음을 시작하기 위해 다시 시작 버튼을 액티비티에 추가했지만 코드의 문제는 마지막 파일에 새 레코드 파일을 덮어 쓰는 것입니다. 코드의이 부분을 편집하고 싶습니다.저장된 파일 이름에 현재 날짜와 시간을 추가하는 방법은 무엇입니까?

outputFile = Environment.getExternalStorageDirectory(). 
    getAbsolutePath() + "/Recording" + date + time + ".3gpp"; 

문제는 내가 코딩에서 멍청한 놈이고 나는 날짜와 시간을 설명하고 작동 아닌지 모르겠어요 방법을 모르는 것이다.

+0

'date + time'을 (date.getTime() + Math.random())으로 변경하면 http://stackoverflow.com/questions/20120562/javascript-timestamp-number에 따라 고유 한 이름을 얻을 수 있습니다. -is-not-unique – mplungjan

답변

0

감사합니다. 내 친구들이 많이 있습니다.하지만 대답을 직접 찾았습니다. 추가 :

import java.util.Calendar; 

다음 추가 : 다음

Calendar cal = Calendar.getInstance(); 
int seconds = cal.get(Calendar.SECOND); 
int minutes = cal.get(Calendar.MINUTE); 
int hour = cal.get(Calendar.HOUR); 
int date = cal.get(Calendar.DATE); 
int month = cal.get(Calendar.MONTH); 
int year = cal.get(Calendar.YEAR); 

과 :

outputFile = Environment.getExternalStorageDirectory(). 
     getAbsolutePath() + "/Recording" + (year) + "-" + (month) + "-" + (date) + "-" + (hour) + "-" + (minutes) + "-" + (seconds) + ".3gpp"; 

의 나를 위해 일했다.

+0

고양이를 피부에 또 다른 방법 (그러나 더 장황하고 오류가 발생하기 쉬운) –

0

고유 한 이름 만 있으면 사용할 수 있습니다.

날짜와 시간을 바꿀 때 사용합니다. getAbsolutePath() + "/ Recording"+ System.currentTimeMillis() + ".3gpp";

1970 년 1 월 1 일 이후의 밀리 초 수를 제공합니다. 일반적으로 uid가됩니다. 그리고 확실히 고유하고 순차적 인 이름을 만들 것입니다.

0

사용이 함수는 날짜 및 시간

public String getUniqueFilePath(String name,String formate) { 
    photo = new File(Environment.getExternalStorageDirectory(), 
      new SimpleDateFormat("yyyy_MM_dd_HHmmss", 
        Locale.getDefault()).format(new Date()) + name + formate); 
    return photo.getPath(); 
} 
1

당신에게 고유 한 파일 경로를 반환하는 방법

와 함께이 완벽한 솔루션을 만들기위한 @ FabianGünter에

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); 
    String fName = String.format ("myFile_%s.txt", sdf.format(new Date())); 

덕분 같은 약

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); 
outputFile = Environment.getExternalStorageDirectory(). 
      getAbsolutePath() + "/Recording" + sdf.format(new Date()) + ".3gpp"; 
+0

주어진 코드에 따라 전체 코드 예제를 제공하기 위해이 해킹을 해킹합니다. SimpleDateFormat sdf = new SimpleDateFormat ("yyyyMMddHHmmss"); outputFile = Environment.getExternalStorageDirectory(). getAbsolutePath() + "/ 녹음 중"+ sdf.format (새 날짜()) + ".3gpp"; – N4zroth

+0

@ FabianGünter 감사합니다. 입력 한 내용에 대한 답변을 편집했습니다. –

관련 문제