다운로드 폴더와 같이 Android 휴대 전화의 내부 저장 공간에 액세스해야하는 앱이 있습니다. 그러나 그 파일을 나열하려고 할 때"/ sdcard /"의 파일을 나열하면 null이 반환됩니까?
java.io.File;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class Main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
File root = new File("/"); // Works
File mnt = new File("/mnt/"); // Works
File mnt2 = new File("/mnt/m_internal_storage"); // Crashes
File cus = new File("/custom/"); // Works
File f = new File("/sdcard/"); // Crashes
String[] s = f.list();
for (int x = 0; x < s.length; x++) {
Log.println(Log.ASSERT, "#", s[x]);
}
}
}
이 코드는 디렉토리의 모든 파일을 인쇄합니다. 그것은 root
로 mnt
& cus
작동하지만 s
에 null
배열을 반환 f
& mnt2
의 목록을하려고 할 때 충돌이 발생합니다. 내부 파일 저장소에 어떻게 액세스합니까?
나는 또한 대부분의 실패와 함께 Environment
의 기능을 사용해 보았고 외장형 스토리지에 대한 읽기/쓰기 권한도 있습니다.
7.0 용으로 컴파일. API (23) 최소 SDK의 API를 대상으로 18
프로그래밍을 사용하지 않고 휴대 전화의 파일을 보려면 파일 탐색을 사용하고 있습니다. 휴대 전화에는 내부 다운로드 폴더와 외부 폴더가 있습니다. 내가 말했듯이'환경'이 작동하지 않고 나는 extact dir을 알리기 위해 하드 코드를 사용하고 있었다.셋째, 내부 저장소에 대한 R/W에 대한 런타임 권한이 필요합니까? –
https://developer.android.com/training/basics/data-storage/files.html#WriteInternalStorage에는 내부 저장소에 대한 사용 권한이 필요하지 않습니다. –
또한'/ sdacard /'는 오타였습니다. –