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

안드로이드 단말기 파일 불러오기 질문입니다

0 추천
String dir = Environment.getExternalStorageDirectory().getAbsolutePath();
 
File file = new File(dir,fileName);
 
이런 구문으로 파일객체를 생성하는데 생성이 되지안습니다
 
storage/emulated/0 이  dir 로 반환되는데 가상머신으론 잘 작동했는데  실제 단말기에선 여기서 막혀서 진행이되지않습니다
 
아시는분들의 조언을 구합니다..
숭늉 (540 포인트) 님이 2014년 7월 10일 질문

1개의 답변

0 추천
 
채택된 답변
디렉토리가 존재하는지 확인한 뒤, 없다면 디렉토리를 생성 후에 파일을 생성해보시길 바랍니다.
인연 (31,880 포인트) 님이 2014년 7월 10일 답변
숭늉님이 2014년 7월 10일 채택됨
그게 단말기안에 sdcard 안의 파일을 pc로 전송하려고 하는거라
단말기안에 이미 존재하는 상태 인데요  그것과는 다른 개념인가요?
아, 그렇다면 제가 답한것과는 상관이 없겠군요. 파일을 생성하는데 문제가 있는줄...^^;
MEDIA_MOUNTED 도 확인했는데 파일객체가 생성안된다는게 잘이해가안되네요 ㅠ
권한에 READ_EXTERNAL_STORAGE도 되어있는지 한번 확인해보세요.
아 READ는 없었네요 한번해볼께요
그래도 안되네요 ㅠㅠ 뭐가문젠지
if (file.exists())
이걸로 한번 검사 해보시고, getAbsolutePath(); 보다 getPath()를 해보세요.
알겠습니다 같은파일로 그런데 가상머신 DDMS에 mnt/sdcard 에 넣어놓고도 됐었는데 실제 단말기에 넣었다고 파일이 존재하지않는다는건..
그냥 usb로 연결해서 sdcard , phone 중에 sdcard 젤 바깥에 넣어두고 하는건데요 잘안되네요
그렇게했지만 file.exists() 에서 false 가 뜨네요.. 생성이 안된다는거네요
file.exists()로 false가 뜬다는 것은 해당 경로에 파일이 없다는 것을 의미합니다. 단말기마다 외장 경로를 정하는 것이 달라 안 될수도 있으니 다른 경로를 사용하여 확인해보시길 바랍니다.
인연님 감사합니다 여러번 시도끝에 getExternalStorageDirectory().getPath() 함수가 돌려주는 경로는
외부 sdcard 경로가아닌 내장메모리 경로란걸 확인했네요
핸드폰을 연결하면 탐색기에서 접근가능한 경로가 sdcard 와 phone 이었는데 그 phone 이라는 경로를 돌려주는군요 sdcard 의 경로를 얻을려면 어떤방법이 있을까요?
기기마다 차이가 존재하겠지만, 전 Environment.getExternalStorageDirectory() + 파일이름 하면 외부장치에 접근이 가능하더군요. getPath() 메소드를 사용하지 않고, 그냥 문자열로 이어버렸습니다; 아마 내부적으로는 Environment.getExternalStorageDirectory().toString()이 되겠지요.
한번해보겠습니다 감사합니다
...