//질문 소스----------------------------------------------------------------------------------------------------------------------
private static String getFilename(){
String filepath = Environment.getExternalStorageDirectory().getPath();
File file = new File(filepath,AUDIO_RECORDER_FOLDER);
if(!file.exists()){
file.mkdirs();
}
return (file.getAbsolutePath() + "/" + System.currentTimeMillis() + file_exts[currentFormat]);
}
//---------------------------------------------------------------------------------------------------------------------------------------
오디오파일을 저장 시킬려고 하는데요..
//나타난 에러---------------------------------------------------------------------------------------------------------------------------
W/System.err(752): java.io.FileNotFoundException: /mnt/sdcard/AudioRecorder/1352760611908.mp4 (Permission denied)
W/System.err(752): at java.io.FileOutputStream.<init>(FileOutputStream.java:94)
W/System.err(752): at java.io.FileOutputStream.<init>(FileOutputStream.java:165)
W/System.err(752): at java.io.FileOutputStream.<init>(FileOutputStream.java:144)
//---------------------------------------------------------------------------------------------------------------------------------------
다음과 같은 에러가 나면서 저장도 안됩니다.
그래서 manifest에 <uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" />
권한을 추가 시켰는데도 동일한 에러가 나타나는데 왜 그러는지 이유를 모르겠네요;;
아래 레퍼런스 문서를 보시면 File 클래스에 createNewFile()
이라는 메소드가 있습니다.
해당 경로로 File클래스를 만드시고 createNewFile() 해보시면 되지 않을까 싶습니다.
http://docs.oracle.com/javase/1.4.2/docs/api/java/io/File.html#createNewFile()
File f = new File(path);
f.mkdir();
하셔야 될껍니다.
레코더는 파일 링크를 찾는거지 자동으로 폴더를 생성하진 않아서 그럴꺼에요.
FileNotFoundException 이라는군요.
소스를 보아하니 파일이 없으면 파일명으로 폴더를 만드시는군요.
대충 짐작해 보건데 폴더까지만 만드시고, 리턴되는 값 (파일명)에 대한 생성 처리를 하지 않으신 것 같습니다.