좋아, 빠른 머리 위로 나는 안드로이드 프로그래밍에 익숙하지. 나는 uni에서 java에 대한 아주 기본적인 경험을 가지고있다. 최근에 내 삼성 갤럭시 탭을 위해 Android Studio 및 앱을 사용하고 있습니다. 죄송합니다. 이전에 물어 본 적이 있지만 보지 못했습니다.Android - 저장 위치 액세스
내 SD 카드에있는 모든 파일 이름을 표시하는 앱을 만들려고했습니다. 최상위 수준. 나는 단추와 텍스트보기만으로 빠른 인터페이스를 만들었다. (단 하나의 텍스트보기는 목록을 표시하지 않지만 문제는 있지만 어쨌든 나는 가지고있다.)
은 다음 코드로 끝났다.
*public void ShowFolder(View view){
TextView test = (TextView)findViewById(R.id.View);
root = new File(Environment.getRootDirectory().toString());
File[] Files;
Files = root.listFiles();
String[] File_List;
File_List = root.list();*
그런 다음 디버거를 사용하여 두 배열 목록에 모두 표시되는지 확인했습니다. 이 코드를 세 번 실행했지만 "Environment.getRootDirectory"를 "getExternalStorageDirectory()"및 "getDataDirectory()"로 변경했습니다.
getRootDirectory 버전만이 아무것도 반환하지 않습니다. 다른 두 인스턴스에서 디버거는 Files 및 Files_list에 대해 모두 NULL을 표시합니다. 나는 유효한 위치라는 것을 알고 있습니다. 그 명령을 사용하여 파일 브라우저로 타블렛에서 수동으로 찾을 수있는 문자열로 출력했기 때문입니다.
그래서 간단히 말해서이 세 가지 옵션 모두가 파일 목록을 반환하지 않습니다. 내 첫 번째 생각은 권한이지만 나는 이것을 확인하는 방법을 확신하지 못했습니다. (긴 게시물에 대한 죄송합니다)
의 문서에서 여기에서 볼 수 있듯이
은 또한 당신은
READ_EXTERNAL_STORAGE
허가를 받아야 할 필요가 이러한 변경을했다. 오류가 아니라 내 부분에 나쁜 연습이 있습니까? getExternalStorageDirectory() 및 getDataDirectory()가 배열 목록의 항목을 반환하지 않는 이유에 대한 정보는 무엇입니까? –필자는 사용 권한이 누락되었다는 추가 정보를 사용하여 내 대답을 편집했습니다. – rafal
고마워, 권한이 추가 된 모든 3 디렉터리 함수에 대한 값을 반환 할 수 있습니다. 디렉토리 경로를 반환하는 다른 유사한 기능이 있습니까? 구체적으로 내 SD 카드로 경로를 반환합니다. 나는 또한 이것을 보았지만 getExternalStorageDirectory() 함수는 어떤 장치가 사용되고 있는지에 따라 시간의 일부가 아닌 다른 것을 수행하는 것으로 보인다. –