[android] 안드로이드 파일 시스템과 파일 이동 및 복사

안드로이드 파일 시스템

안드로이드 운영체제는 리눅스 커널을 기반으로 하며, 파일 시스템 구조 또한 리눅스와 유사합니다. 안드로이드 앱은 앱 전용 디렉토리 내에서만 파일을 생성, 수정, 삭제하는 것이 일반적입니다. 일반적으로 내부 저장소와 외부 저장소로 나뉩니다.

내부 저장소

내부 저장소는 앱별로 격리되어 있으며, 다른 앱은 해당 디렉토리에 접근할 수 없습니다. 앱이 설치되면, 기본 디렉토리는 data/data/패키지명/ 입니다.

외부 저장소

외부 저장소는 SD 카드 또는 USB 저장장치와 같은 외부 저장 매체를 가리킵니다. 앱이 외부 저장소에 접근하기 위해서는 READ_EXTERNAL_STORAGE 또는 WRITE_EXTERNAL_STORAGE 권한이 필요합니다.


파일 이동 및 복사

파일 이동

안드로이드에서 파일을 이동하기 위해서는 파일을 복사한 뒤, 원본 파일을 삭제해야 합니다. 다음은 파일 이동을 위한 간단한 코드 예제입니다.

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;

public class FileMoveExample {
    public static void moveFile(String sourcePath, String destinationPath) {
        File source = new File(sourcePath);
        File destination = new File(destinationPath);
        try {
            FileUtils.moveFile(source, destination);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

파일 복사

파일을 복사하기 위해서는 FileInputStreamFileOutputStream을 사용하여 파일의 내용을 읽고 쓰는 작업을 수행해야 합니다. 아래는 파일을 복사하는 간단한 코드 예제입니다.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileCopyExample {
    public static void copyFile(String sourcePath, String destinationPath) {
        try {
            File source = new File(sourcePath);
            File destination = new File(destinationPath);
            FileInputStream fileInputStream = new FileInputStream(source);
            FileOutputStream fileOutputStream = new FileOutputStream(destination);

            byte[] buffer = new byte[1024];
            int length;
            while ((length = fileInputStream.read(buffer)) > 0) {
                fileOutputStream.write(buffer, 0, length);
            }

            fileInputStream.close();
            fileOutputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제를 통해 안드로이드 파일 시스템에 대한 간단한 이해와 파일 이동, 복사에 대한 방법을 살펴보았습니다. 파일 시스템의 구조와 파일 처리에 대해 더 많은 정보를 얻고 싶다면, 관련 레퍼런스를 참고하시기 바랍니다.

안드로이드 저장소 관리 - 공식 안드로이드 가이드

안드로이드 파일 시스템 수정 - Java.io 패키지 레퍼런스

안드로이드 파일 처리 가이드 - 다음 블로그