ZIP 파일 저장 함수 설명
zip_save
함수는 zip_create
로 생성한 ZIP 파일을 지정된 파일 경로에 저장하는 기능을 제공합니다. 호출이 성공하면 요청 ID가 반환되며, 이후 AsyncSave / Load 이벤트가 발생하여 이 ID를 확인할 수 있습니다. 오류가 발생할 경우 치명적인 오류가 발생합니다.
함수 구문
zip_save(zip_object, path);
인자 설명
인자 이름 | 타입 | 설명 |
---|---|---|
zip_object | ZIP File | zip_create 로 생성된 ZIP 파일 |
path | String | ZIP 파일이 저장될 파일 경로 |
반환값
- Real: 요청 ID
사용 예제
다음은 ZIP 파일을 생성하고 파일을 추가한 후 저장하는 예제입니다.
var _zip = zip_create();
zip_add_file(_zip, "new.txt", "new.txt");
zip_add_file(_zip, "sounds/snd_attack_arc_01.wav", "snd_attack_arc_01.wav");
zip_save(_zip, "upload.zip");
이 코드는 새로운 ZIP 파일을 생성하고, 두 개의 파일을 추가한 후 upload.zip
이라는 이름으로 디스크에 저장합니다. 두 번째 파일은 sounds/
라는 하위 디렉토리에 위치합니다.
활용 및 응용 예제
- 다수의 파일 압축하기 여러 파일을 한 번에 압축하여 배포할 수 있습니다.
gml var _zip = zip_create(); zip_add_file(_zip, "document1.txt", "document1.txt"); zip_add_file(_zip, "document2.txt", "document2.txt"); zip_add_file(_zip, "image.png", "image.png"); zip_save(_zip, "documents.zip");
- 디렉토리 구조 유지하기 파일을 추가할 때 디렉토리 구조를 유지할 수 있습니다.
gml var _zip = zip_create(); zip_add_file(_zip, "assets/images/logo.png", "logo.png"); zip_add_file(_zip, "assets/sounds/click.wav", "click.wav"); zip_save(_zip, "assets.zip");
- 비동기 저장 후 처리 ZIP 파일을 비동기적으로 저장하고, 저장 완료 후 추가 작업을 수행할 수 있습니다.
gml var _zip = zip_create(); zip_add_file(_zip, "data.json", "data.json"); var request_id = zip_save(_zip, "data.zip"); // AsyncSave / Load 이벤트에서 request_id를 확인하여 작업 수행
- 에러 처리 ZIP 파일 저장 중 오류가 발생할 경우를 대비한 에러 처리 예제입니다.
gml var _zip = zip_create(); zip_add_file(_zip, "file.txt", "file.txt"); var result = zip_save(_zip, "output.zip"); if (result < 0) { show_error("ZIP 파일 저장 중 오류 발생!", true); }
이와 같은 방법으로 zip_save
함수를 활용하여 다양한 파일을 압축하고 저장할 수 있습니다.