AutoHotKey(오토핫키) 설명서 FileSelectFile

Posted by 발전소장
2014. 8. 14. 00:34 AutoHotKey/Commands

FileSelectFile

파일 선택 다이얼로그를 표시

FileSelectFile, OutputVar [, Options, RootDir\Filename, Prompt, Filter]

Parameters

인수명설명
OutputVar 선택된 파일명이 격납되는 변수명
Options 이하의 것의 화.
생략시는 「0」.
1
존재하지 않는 파일을 금지한다
2
존재하지 않는 패스를 금지한다
4
복수 선택을 허가한다
8
존재하지 않는 파일을 지정했을 때, 신규 작성할까를 문의한다
16
존재하는 파일을 지정했을 때, 덧쓰기할까를 문의한다
32
쇼트 컷 파일(*.lnk)(을)를 선택했을 때, 링크 앞의 파일은 아니고 쇼트 컷 파일 그 자체가 선택되게 된다
값의 전에 「S」(을)를 붙이면, 「보존」다이얼로그로 할 수 있다.
「8」(을)를 지정해 「16」(을)를 지정하지 않았던 경우, 강제적으로 「보존」다이얼로그가 된다.
「4」(을)를 지정하는 대신에, 값의 전에 「M」(을)를 붙일 수도 있다.(례:「M」 「M3」)
RootDir\Filename 최초로 표시되는 디렉토리.
상대 패스로 지정했을 때는,%A_WorkingDir%(으)로부터의 상대 패스로 간주해진다.
생략시의 설정은OS에 의존한다.
::{20d04fe0-3aea-1069-a2d8-08002b30309d}(와)과 같은CLSID도 지정 가능.
지정할 수 있다CLSID하CLSID일람참조
「::{450d8fba-ad25-11d0-98a8-0800361b1103}\My Pictures」(와)과 같이,CLSID에 이어 서브 폴더의 패스를을 지정하는 일도 가능
마지막에 파일명을 포함한 패스를 지정하면, 파일명 입력란의 디폴트치를 지정할 수 있다.
Prompt 다이얼로그의 타이틀 바에 표시되는 메세지를 지정.생략시는 「Select File」
Filter 표시하는 파일명을 와일드 카드로 지정.
례:「WSH Script File(*.js;*.vbs)」
생략시는, 「파일의 종류」에는 「All Files (*.*)」와「Text Documents (*.txt)」(이)가 표시된다.
지정시는, 그 필터와 「All Files (*.*)」(이)가 표시된다.

Remarks

OutputVar에는 선택된 파일의 풀 패스가 격납된다.
「캔슬」버튼을 누르거나 「닫는다」버튼으로 다이얼로그를 다물거나 하면,OutputVar(은)는 비운다.

복수의 파일이 선택되었을 경우, 개행(`n)단락으로 열거된다.
그 경우,1행목은 파일이 있는 디렉토리가 되어, 나머지는 디렉토리 패스를 포함하지 않는 파일명이 된다.
이 때, 결과가64KB(을)를 넘는 경우는 결과가 비워 버린다.

덧붙여Options그리고 「M」(을)를 사용하지 않고 「4」(으)로 복수 선택으로 했을 경우, 하나 밖에 선택하지 않았을 때는 풀 패스가1행에 격납되게 된다.

Gui,+OwnDialogs(을)를 사용하는 것으로,GUI윈도우의 아이 윈도우로서 다이얼로그를 표시할 수 있다.
아이 윈도우로서 다이얼로그가 표시되고 있는 동안은, 부모가 된다GUI윈도우는 조작할 수 없게 된다.

Related

FileSelectFolder, MsgBox, InputBox, ToolTip

Example(s)

FileSelectFile, SelectedFile, 3, , Open a file, Text Documents (*.txt; *.doc)
if SelectedFile =
	MsgBox, The user didn't select anything.
else
	MsgBox, The user selected the following:`n%SelectedFile%


; MULTI-SELECT EXAMPLE:
FileSelectFile, files, M3  ; M3 = Multiselect existing files.
if files =
{
	MsgBox, The user pressed cancel.
	return
}
Loop, parse, files, `n
{
	if a_index = 1
		MsgBox, The selected files are all contained in %A_LoopField%.
	else
	{
		MsgBox, 4, , The next file is %A_LoopField%.  Continue?
		IfMsgBox, No, break
	}
}
return