FolderExists

指定したフォルダが存在するかどうかを確認します。

指定したファイルが存在するか調べるにはFileExistsを使用します。

構文
Boolean = FileSystemObject.FolderExist( filespec )
引数
filespec
フォルダ名を指定
戻値
True
指定したフォルダが存在する
False
指定したフォルダが存在しない

プログラム実行例

表示されているすべてのウィンドウのスクリーンショットを保存

DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")

DIM folderspec = "D:\Desktop\Screenshot"
IF FSO.FolderExists(folderspec) = FALSE THEN FSO.CreateFolder(folderspec)

FOR n = 0 TO GETALLWIN() - 1
	DIM ID = ALL_WIN_ID[n]
	IFB STATUS(ID, ST_VISIBLE) = TRUE		
		DIM filename = ID + "_" + STATUS(ID, ST_TITLE)
		filename = PathCleanupSpec(filename)
		DIM path = FSO.BuildPath(folderspec, filename)
		path = uniqueFilename(path)
		SAVEIMG(path, id)
	ENDIF
NEXT

//////////////////////////////////////////////////
// 【引数】
//   filename : 使えない文字を削除するファイル・フォルダ名 
// 【戻値】
//   ファイル名として使えない文字を削除した文字列 
//////////////////////////////////////////////////
FUNCTION PathCleanupSpec(filename)
	DIM filenameErrChar[12] = "\", "/", ":", "*", "?", "<#DBL>", "<#CR>", "<#TAB>", "<", ">", "|", "[", "]"
	FOR item IN filenameErrChar
		filename = REPLACE(filename, item, "")
	NEXT
	RESULT = filename
FEND

//////////////////////////////////////////////////
// 【引数】
//   path : ファイルのパス 
// 【戻値】
//   重複しないファイル名 
//////////////////////////////////////////////////
FUNCTION uniqueFilename(path)
	DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
	IFB FSO.FileExists(path) THEN
		DIM fol = FSO.GetParentFolderName(path)
		DIM filename = FSO.GetBaseName(path)
		DIM extension = FSO.GetExtensionName(path)
		DIM i = 2
		WHILE FSO.FileExists(FSO.BuildPath(fol, filename + " (" + i + ")." + extension))
			i = i + 1
		WEND
		RESULT = FSO.BuildPath(fol, filename + " (" + i + ")." + extension)
	ELSE
		RESULT = path
	ENDIF
FEND
  1. script.function.CREATEOLEOBJ(1)
  2. com.FSO.FolderExists(4)
  3. com.FSO.CreateFolder(4)
  4. script.function.GETALLWIN(6)
  5. script.function.STATUS(8,9)
  6. udf.PathCleanupSpec(10)
  7. com.FSO.BuildPath(11)
  8. udf.uniqueFilename(12)
  9. script.function.SAVEIMG(13)

指定したフォルダが存在するか

DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM FolderName = INPUT("フォルダ名を入力してください。")

IFB FSO.FolderExists(FolderName) THEN
	MSGBOX("「" + FolderName + "」フォルダは存在します。")
ELSE
	MSGBOX("「" + FolderName + "」フォルダは存在しません。")
ENDIF
  1. script.function.createoleobj(1)
  2. script.function.input(2)
  3. com.fso.folderexists(4)
  4. script.function.msgbox(Γ,6])