[게임메이커 강좌-기초][GMS2] 파일 열기와 파일 저장 함수
GAME MAKER 강좌
KAYAN
◈ 파일 열기
파일 열기는 아래 함수를 사용합니다.
◎ get_open_filename(filter,fname) |
필터(filter) 인자는 파일을 열때, 어떤 파일 확장자를 지원할 것인지를 지정하고,
파일명(fname)은 기본 파일명을 지정합니다.
즉, 파일 열기의 입력창에 기본으로 정해주는 문자열입니다.
파일 입력창을 비워두려면 빈 문자열을 지정하면 됩니다.
(▲ 파일열기 )
※ [참고] : 이 함수를 사용하려면 게임옵션(Game Option) ▶ Platform Settings ▶ Windows ▶ General ▶ Disable file system sandbox 을 체크해야 합니다.
※ [참고] : 이 함수는 Windows 와 macOS 에서만 작동합니다.
(▲ Disable file system sandbox 체크)
필터 설정은 아래와 같이 문자열로 설정합니다.
"파일 형식|파일 확장자" |
지원하는 파일 명칭과 확장자 사이에 기호 "|" 로 구분시키면 됩니다.
예를 들어, 텍스트 파일을 *.txt 파일을 지원한다면, 아래와 같이 설정하면 됩니다.
"텍스트 파일|*.txt;" |
두개 이상의 확장자를 지원시키고자 할 때는 아래와 같이, 원하는 확장자를 추가해주기만 하면 됩니다.
"텍스트 파일|*.txt;*.ini;" |
(▲ 파일열기- 필터의 확장자를 가진 파일만 정렬)
두개 이상의 확장자를 구분하여 지원하려면 아래와 같이 기호 "|"로 구분시키고 파일 형식과 확장자를 추가하면 됩니다.
"파일 형식1|파일 확장자1|파일 형식2|파일 확장자2 ..." |
예)
"텍스트 파일|*.txt;|ini 파일|*.ini;" |
(▲ 파일열기 - 파일 형식을 별도로 구분)
이 함수는 파일 열기가 성공하면 파일명과 함께 파일경로가 반환되며, 실패(또는, 취소)하면 빈 문자열이 반환됩니다.
예)
var fname,_fn; fname=get_open_filename("텍스트 파일|*.txt;",""); if file_exists(fname){ _fn=file_text_open_read(fname); text_test=file_text_read_string("파일열기를 테스트합니다."); file_text_close(_fn); } |
◈ 파일 저장
파일 저장은 아래의 함수를 사용합니다.
◎ get_save_filename(filter,fname) |
파일 열기와 마찬가지로 지원할 파일형식에 관련된 필터 설정과 파일명을 지정해주면 됩니다.
(▲ 파일 저장)
※ [참고] : 이 함수를 사용하려면 게임옵션(Game Option) ▶ Platform Settings ▶ Windows ▶ General ▶ Disable file system sandbox 을 체크해야 합니다.
※ [참고] : 이 함수는 Windows 와 macOS 에서만 작동합니다.
이 함수는 파일 저장을 성공하면 파일명과 함께 파일경로가 반환되며, 실패(또는, 취소)하면 빈 문자열이 반환됩니다.
예)
var fname,_fn; fname=get_save_filename("텍스트 파일|*.txt;","제목없음.txt"); if !(fname==""){ _fn=file_text_open_write(fname); file_text_write_string(_fn,"파일 저장을 테스트합니다."); file_text_close(_fn); } |
함수로 저장할 때, 확장자를 자동으로 붙여주지 않으므로, 파일 저장 이벤트에서 파일명에 확장자를 미리 붙여주는 것이 좋습니다.
예)
var fname,_fn; fname=get_save_filename("텍스트 파일|*.txt;",""); if !(fname==""){ var _ext= !(filename_ext(string_lower(fname))==".txt") ? ".txt" : "";//확장자가 .txt 가 아니면 파일명에 .txt를 붙여줌 _fn=file_text_open_write(fname+_ext);//파일명에 확장자를 붙여줌. file_text_write_string(_fn,"파일 저장을 테스트합니다."); file_text_close(_fn); } |
이와 같이 하면 입력창에 굳이 확장자를 붙이지 않아도 확장자를 자동으로 붙여 저장할 수 있습니다.
※ [참고] : 경로에 기호 '\'를 단독으로 사용할 경우 문자열 명령어로 인식해서 경로를 제대로 인식 못할 수 있습니다.
※ 그럴 때는 아래와 같이 문자열을 @기호로 처리하거나, '\'를 2개 사용(\\, 기호 '\'를 표시하는 명령어)하면 됩니다.
fname = @"image\player_5.png"; 또는, fname = "image\\player_5.png"; |