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

안드로이드 내부 저장소 폴더 생성 문제

0 추천
안드로이드 내부 저장소에 폴더를 생성해서 이미지를 저장하려고 합니다.

인터넷에서 나오는 방법대로

File folder = new File(getFilesDir().getAbsolutePath());

// File folder = new File(Environment.getExternalStorageDirectory().getAbsolutePath());

// 위의 값도 적용해봤습니다.

folder.mkdirs();

를 쓰고 권한도 manifest에 넣어줬는데, 무슨 짓을 해도 폴더가 생성이 안됩니다.

패키지명으로 된 폴더조차도 폰에서 발견되지가 않습니다...

인터넷에서 찾아보니 루팅하지 않은 폰에서는 적용이 되지 않는다는 말도 있고,

아니면 다른 방법을 써서 폴더를 갱신하는 법도 있다고 하여 참고하였으나 다 작동하지를 않습니다.

생성은 되나 디렉토리만 보이지 않는 것인가요? ㅠㅠ...아니면 제가 잘못 생성한 건가요?

인터넷에 글이란 글은 다 뒤져본 것 같은데, 해결하지 못하고 있네요 도움 주십사합니다.
익명사용자 님이 2016년 1월 14일 질문
음..
api23 부터는 manifest에서 권한을 준다해도사용자가 권한을 요청하는 부분을 넣어서 권한을 획득해야 폴더를 생성할 수 있을거에요.
어플관리에 가셔서 권한 보시면 안켜져 있을 껄요..

2개의 답변

+1 추천

String dirPath = Environment.getExternalStorageDirectory().getAbsoluteFile() + 파일명
File file = new File(dirPath);
if(!file.exists())
file.mkdirs();

 

이런식으로 path에 폴더 경로가 아닌 파일경로까지 써야 new File()이 제대로 되지 않을까요?

캬옹이 (37,920 포인트) 님이 2016년 1월 14일 답변
앗 그렇군요 감사합니다!!! 해보겠습니다!!! 근데 이것저것 해보기도하고 검색도 해보니까 루팅하지 않으면 생성이 되더라도 폴더를 볼 수 없는 것 같더라구요 ㅠㅠ 답변 감사합니다!!!!
그건 아닙니다.. 제가 프로젝트 할때 sd카드내에 저장을 해서 사용한적이 몇번 있습니다.
+1 추천
답변을 제대로 해주셨는데 내부라고 하셨으니...

File dir = new File(context.getFilesDir(), "폴더명");

if(!dir.exists())

 dir.mkdirs();

혹시나 getFilesDir에서 null이 떨어진다면 생성 시점을 액티비티 create 된 시점으로 교체 해보시는것도...

폴더는 android/data/패키지명 혹은 data/data/패키지명 으로 나옵니다. (전자는 보통 디바이스에서 파일탐색기 쓸경우...)
귀찮근 (2,960 포인트) 님이 2016년 1월 14일 답변
답변 감사합니다!!!! 폴더가 하나가 아니군요 ㅠㅠ...찾아보겠습니다!!! 정말 감사해요!!
...