get_save_filename_ext 함수 설명
mask1 | name2 | mask2 | ..." 형식으로 되어 있으며, 마스크는 세미콜론으로 구분된 다양한 옵션을 포함할 수 있고, "*"를 사용하여 모든 문자열을 의미할 수 있습니다. 예를 들어, "bitmaps |
---|---|---|---|
이 함수는 실제로 파일을 저장하지 않으며, 파일의 전체 이름과 경로를 포함한 문자열만 반환합니다. 사용자가 "취소"를 누르면 빈 문자열("")이 반환됩니다. 또한, 검색을 시작할 디렉토리와 기본 제목 대신 표시할 캡션을 추가할 수 있습니다.
이 함수를 사용할 때 중요한 점은 게임이 실행되는 동안 해당 파일에 대한 특정 권한이 부여된다는 것입니다. 따라서 사용자가 파일 경로를 제공하면, 이후에는 다시 요청하지 않고도 해당 파일에 접근할 수 있으며, 읽기 및 쓰기 권한이 동일하게 적용됩니다.
문법
get_save_filename_ext(filter, fname, directory, caption);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
filter | 문자열 | 파일 유형 필터 및/또는 이름. |
fname | 문자열 | 제안된 파일 이름. |
directory | 문자열 | 검색을 시작할 디렉토리. |
caption | 문자열 | 창의 제목. |
반환 값
- 선택된 파일의 전체 경로 문자열. 사용자가 "취소"를 누르면 빈 문자열("")이 반환됩니다.
예제 코드
var file;
||
||
if (file != "") {
screen_save(file);
}
위 코드는 사용자가 작업 디렉토리에 저장할 이미지 파일 이름을 선택하도록 요청하고, 반환된 파일 이름과 경로가 빈 문자열이 아닐 경우 스크린샷을 찍어 지정된 이름으로 저장합니다.
활용 예제
- 텍스트 파일 저장하기
gml var textFile; || || if (textFile != "") { var fileHandle = file_text_open_write(textFile); file_text_write_string(fileHandle, "Hello, World!"); file_text_close(fileHandle); }
- 이미지 파일 저장하기
gml var imageFile; || || if (imageFile != "") { var img = sprite_get_texture(sprite_index, image_index); surface_save(img, imageFile); }
- 게임 설정 저장하기
gml var settingsFile; || || if (settingsFile != "") { var jsonData = json_encode(settings); var fileHandle = file_text_open_write(settingsFile); file_text_write_string(fileHandle, jsonData); file_text_close(fileHandle); }
이와 같이 get_save_filename_ext
함수를 활용하여 다양한 파일 형식으로 데이터를 저장할 수 있습니다.