本ページには広告が含まれています。
指定したパスにフォルダを作成します。foldernameに指定したパスにフォルダを作成します。指定したフォルダが既に存在する場合や親フォルダが存在しない場合は、エラーが発生します。
パスが存在するかどうか調べるにはFSO.CreateFolder メソッドを使います。
- 構文
- FileSystemObject.CreateFolder( foldername )
- 引数
- foldername 省略可
- 作成するフォルダーの名前を指定
- 戻り値
注意点
CreateFolderは親フォルダが存在しなければエラーになります。
以下は再帰呼び出しで親フォルダが存在するところまで遡り順にフォルダを作成していくプログラムです。
PROCEDURE CreateFolders(folderspec)
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM parentPath = FSO.GetParentFolderName(folderspec)
IFB !FSO.FolderExists(parentPath) THEN
CreateFolders(parentPath)
ENDIF
IF !FSO.FolderExists(folderspec) THEN FSO.CreateFolder(folderspec)
FEND
プログラム実行例
表示されているすべてのウィンドウのスクリーンショットを保存
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
使用関数
解説
関連記事
- Shell.Explore メソッド
- 指定したディレクトリをエクスプローラで開きます。
- Folder オブジェクト
- シェルフォルダを表します。
- Folder.CopyHere メソッド (Shell)
- 1つまたは複数のアイテムをフォルダにコピーします。
- Folder.GetDetailsOf メソッド (Shell)
- フォルダ内のアイテムに関する詳細を取得します。
- Folder.MoveHere メソッド (Shell)
- 1つまたは複数のアイテムをこのフォルダに移動します。
- Folder.ParseName メソッド (Shell)
- 指定されたアイテムのFolderItem オブジェクトを作成して返します。
- Folder.ParentFolder プロパティ (Shell)
- 指定したフォルダの親のFolder オブジェクトを返します。
- FileSystemObject オブジェクト
- Folder オブジェクト
- Folder オブジェクト
- フォルダのすべてのプロパティにアクセスできます。