[Android] 외부 저장소에서 폴더 생성하기

깨미·2021년 1월 26일
0

📱 Android 📱

목록 보기
1/16
post-thumbnail
post-custom-banner

1.권한 설정

먼저 외부 저장소를 사용하기 위해서는 저장소 권한을 설정해야 한다.
AndroidManifest.xml에서 <manifest> 안에 외부 저장소의 권한을 주는 구문을 넣는다.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

! android 10 주의 사항

여기서 주의할 점은 android 10 버전에서는 AndroidManifest.xml 파일에서 <application> 안에 android:requestLegacyExternalStorage="true"를 추가 해야 외부 저장소를 사용할 수 있다.

2. 권한 팝업 요청

권한을 설정하고, 앱을 실행하였을 때 권한 허용 문구가 뜰 수 있도록 앱의 첫 시작 Activity에 해당 함수를 선언하였다.

public void checkVerify() {
	if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || 
    checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
 	if (shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) { }
    requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
	}
}

권한을 허용하지 않았을 경우, 권한 팝업이 뜨도록 하는 함수 이다.

! 여기서 추가적으로 onRequestPermissionsResult를 사용하여 권한 허용을 하지 않았을 경우를 위한 처리를 할 수 있다.

3. 폴더 생성

다음으로, 간략하게 폴더를 생성하는 자바 코드는 아래와 같다.

File path = Environment.getExternalStoragePublicDirectory("/(path 입력)");

if (!path.mkdirs()) { 
	Log.e("FILE", "Directory not created");
}
else {
	Toast.makeText(this, "폴더 저장", Toast.LENGTH_SHORT).show();
 }

폴더를 저장할 path를 설정한 후, 해당 path에 파일을 생성하는 함수인 mkdirs()이 false가 될 경우, 중복된 이름이 있거나 권한 설정이 제대로 되지 않은 것이므로 이때 Log에 error 메세지를 띄운도록 한다. true인 경우, Toast로 메세지를 띄우도록 한다.

profile
vis ta vie
post-custom-banner

0개의 댓글