Notice
Recent Posts
Recent Comments
Link
투케이2K
806. (Android/Java) ZipOutputStream 사용해 txt 텍스트 파일 zip 파일 만들기 수행 본문
[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Java / Kotlin
[소스 코드]
// ---------------------------------------------------------------
// [로직 처리 실시]
// ---------------------------------------------------------------
// 외부 저장소 접근 관련 참고 정보 :
// - 안드로이드 하위 (os 11 이하) 인 경우 외부 저장소 읽기 , 쓰기 권한 부여 필요
// - 안드로이드 상위 (os 11 이상) 인 경우 AndroidManifest.xml 파일에서 MANAGE_EXTERNAL_STORAGE 권한 부여 수행
// <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
// - 안드로이드 외부 저장소 접근 권한이 없는 경우는 앱 내부 캐시 저장소에 파일 저장 후 zip 파일 생성 수행
// ---------------------------------------------------------------
try {
// [공용 저장소 다운로드 폴더 >> 특정 폴더 지정]
String downLoadfilePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath();
downLoadfilePath += "/LOG_SAVE_FOLDER/";
List<String> filePaths = Arrays.asList(
downLoadfilePath + "APP_CRASH_LOG.txt",
downLoadfilePath + "APP_USE_LOG.txt"
);
String zipPath = downLoadfilePath + "output.zip"; // [Zip 파일 생성 명칭]
try (ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipPath))) {
for (String filePath : filePaths) {
File fileToZip = new File(filePath);
zipOut.putNextEntry(new ZipEntry(fileToZip.getName())); // [파일 추가]
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // [오레오 이상]
Files.copy(fileToZip.toPath(), zipOut); // [Zip 파일 경로로 복사]
}
}
S_Log._W_("압축 파일 생성 성공", null);
}
}
catch (Exception e){
e.printStackTrace();
}
반응형
'Android' 카테고리의 다른 글
Comments