BrowseForFolder

ユーザーがフォルダを選択できるようにするダイアログボックスを作成し、選択したフォルダのFolderオブジェクトを返します。

キャンセルした場合NOTHINGを返します。

構文
Folder = Shell.BrowseForFolder( Hwnd, sTitle, iOptions, [vRootFolder] )
引数
Hwnd
ダイアログボックスの親ウィンドウのハンドル
sTitle
ダイアログボックス内に表示される文字列
iOptions
BROWSEINFO 構造体のulFlagsメンバーからなる値リストの組み合わせ
vRootFolder
ダイアログボックスで使用する、ルートフォルダを指定する
戻値
フォルダ選択のダイアログボックスを表示し、選択したフォルダのFolderオブジェクトを返す。

プログラム実行例

選択したファイルを移動する

CONST ssfDRIVES = 17

DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM source = Shell.BrowseForFolder(0, "移動元フォルダを選択してください。", 0, ssfDRIVES)
IF source = NOTHING THEN EXIT

DIM Folder = Shell.BrowseForFolder(0, "移動先フォルダを選択してください。", 0, ssfDRIVES)
IF Folder = NOTHING THEN EXIT

Folder.MoveHere(source)

MSGBOX(source.Self.Path + " を " + Folder.Self.Path + " に移動しました。")
  1. script.function.CREATEOLEOBJ(3)
  2. com.Shell.BrowseForFolder(4,7)
  3. com.Shell.Folder.MoveHere(10)
  4. script.function.MSGBOX(12)

選択したファイルをコピーする

CONST ssfDRIVES = 17

DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM source = Shell.BrowseForFolder(0, "コピー元フォルダを選択してください。", 0, ssfDRIVES)
IF source = NOTHING THEN EXIT

DIM Folder = Shell.BrowseForFolder(0, "コピー先フォルダを選択してください。", 0, ssfDRIVES)
IF Folder = NOTHING THEN EXIT

Folder.CopyHere(source)

MSGBOX(source.Self.Path + " を " + Folder.Self.Path + " に移動しました。")
  1. script.function.CREATEOLEOBJ(3)
  2. com.Shell.BrowseForFolder(4,7)
  3. com.Shell.Folder.CopyHere(10)
  4. script.function.MSGBOX(12)

選択したフォルダのパスを取得

CONST ssfDesktop = 0

DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.BrowseForFolder(0, "フォルダを選択してください。", 0, ssfDesktop)

PRINT Folder.Self.Path
  1. script.function.CREATEOLEOBJ(3)
  2. com.Shell.BrowseForFolder(4)

指定したディレクトリ内のフォルダ・ファイル情報を取得

CONST ssfDesktop = 0

DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.BrowseForFolder(0, "フォルダを選択してください。", 0, ssfDesktop)

FOR n = 0 TO Folder.Items.Count - 1
	DIM FolderItem = Folder.Items.Item(n)
	WITH FolderItem
		PRINT "名前<#TAB><#TAB>" + .Name
		PRINT "サイズ<#TAB><#TAB>" + .Size + " Byte"
		PRINT "更新日時<#TAB>" + .ModifyDate
		PRINT "パス<#TAB><#TAB>" + .Path
		PRINT "種類<#TAB><#TAB>" + .Type
	ENDWITH
	PRINT "----------"
NEXT
  1. script.function.CREATEOLEOBJ(3)
  2. com.Shell.BrowseForFolder(4)
  3. com.Shell.Folder.Items(6)
  4. com.Shell.FolderItems.Count(6)
  5. com.Shell.FolderItems.Item(7)
  6. com.Shell.FolderItem.Name(9)
  7. com.Shell.FolderItem.Size(10)
  8. com.Shell.FolderItem.ModifyDate(11)
  9. com.Shell.FolderItem.Path(12)
  10. com.Shell.FolderItem.Type(13)