FSO.BuildPathビルドパス メソッド

本ページには広告が含まれています。

フォルダパスとフォルダまたはファイルの名前を結合したパス文字列を返します。

フォルダパスやファイルパスの文字列を生成するだけで、実際にフォルダ・ファイルが作成されるわけではありません。

パスからフォルダ名を取得するにはFSO.GetParentFolderName メソッド、ファイル名を取得するには、FSO.GetFileName メソッドを使用します。

フォルダが存在するかはFSO.BuildPath メソッド、ファイルが存在するかはFSO.FileExists メソッドで確認できます。

構文
  1. String = FileSystemObject.BuildPath( path, name )
引数
path 省略可
nameが追加される既存のパスを指定します。絶対パス・相対パスを指定することができ、既存のフォルダを指定する必要はありません。
name 省略可
既存のpathに追加される名前を指定します。
戻り値
フォルダパスとフォルダまたはファイルの名前を結合したパス文字列

使い方

指定されたpathnameを結合します。区切り文字の\があればそのまま結合し、なければpathの末尾に\を付与してからnameと結合します。

UWSC
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")

PRINT FSO.BuildPath("D:\Desktop\", "sample.txt")
PRINT FSO.BuildPath("D:\Desktop", "sample.txt")
結果
プレーンテキスト
D:\Desktop\sample.txt
D:\Desktop\sample.txt

nameにフォルダ名、フォルダ名を含んだパスを指定することもできます。フォルダ名を指定しても末尾に\が付与されることはありません。

UWSC
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")

PRINT FSO.BuildPath("D:\Desktop\", "test")
PRINT FSO.BuildPath("D:\Desktop\", "test\sample.txt")
PRINT FSO.BuildPath("D:\Desktop", "test\sample.txt")
結果
プレーンテキスト
D:\Desktop\test
D:\Desktop\test\sample.txt
D:\Desktop\test\sample.txt

pathの末尾、nameの先頭ともに\がある場合でも結合したときに\\と連続することはありません。

UWSC
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")

PRINT FSO.BuildPath("D:\Desktop\", "\test\sample.txt")
結果
プレーンテキスト
D:\Desktop\test\sample.txt

pathの末尾またはnameの先頭に\が2つ以上ある場合は、\が1につなることはありません。

pathの末尾またはnameの先頭ともに\がある場合、\が1つは消えます。

UWSC
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")

PRINT FSO.BuildPath("D:\Desktop\\", "\sample.txt")
PRINT FSO.BuildPath("D:\Desktop\\", "sample.txt")
PRINT FSO.BuildPath("D:\Desktop\", "\\sample.txt")
PRINT FSO.BuildPath("D:\Desktop", "\\sample.txt")
結果
プレーンテキスト
D:\Desktop\\sample.txt
D:\Desktop\\sample.txt
D:\Desktop\\sample.txt
D:\Desktop\\sample.txt

特殊フォルダを指定する場合、Shell.NameSpace メソッドを使うことで動的にパスを生成することができます。以下はデスクトップsample.txtを指定する例。

UWSC
CONST ssfDesktop = 0

DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")

PRINT FSO.BuildPath(Shell.NameSpace(ssfDesktop).Self.Path, "sample.txt")
結果
プレーンテキスト
D:\Desktop\sample.txt

生成したパスに空のファイルを作成するにはコマンドプロンプトのfsutilコマンドを使い以下のように記述します。

UWSC
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM path = FSO.BuildPath("D:\Desktop\", "sample.txt")

PRINT DOSCMD("fsutil file createnew " + path + " 0")

上記のプログラムは指定したフォルダが存在しない場合エラーとなるので、フォルダを生成する場合は以下のように記述します。

UWSC
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM path = FSO.BuildPath("D:\Desktop\test", "sample.txt")

CreateFolders(FSO.GetParentFolderName(path))
PRINT DOSCMD("fsutil file createnew " + path + " 0")

//////////////////////////////////////////////////
// 【引数】
//   folderspec : 作成するフォルダのパス 
// 【戻り値】
//   
//////////////////////////////////////////////////
PROCEDURE CreateFolders(folderspec)
	WITH CREATEOLEOBJ("Scripting.FileSystemObject")
		folderspec = .GetAbsolutePathName(folderspec)
		IF !.DriveExists(.GetDriveName(folderspec)) THEN EXIT
		DIM parentPath = .GetParentFolderName(folderspec)
		IF !.FolderExists(parentPath) THEN CreateFolders(parentPath)
		IF !.FolderExists(folderspec) THEN .CreateFolder(folderspec)
	ENDWITH
FEND

プログラム実行例

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

UWSC
使用関数
解説

システム起動時間を取得

システムの起動時間をyyyy/mm/dd, hh:nn:ssの形式で取得します。

UWSC
結果
プレーンテキスト
2019/12/21, 15:53:56
使用関数
解説

Windowsの稼働時間を取得

Windowsシステムの起動時間から稼働時間を求めます。

結果はd:hh:nn:ssの形式で出力されます。

UWSC
結果
プレーンテキスト
0:08:16:46
使用関数
解説

デスクトップにフォルダを作成

UWSC
使用関数

パス文字列を生成します

UWSC
使用関数

一時ファイルを作成・削除

UWSC
結果
プレーンテキスト
D:\TMP\rad83BB3.tmp
使用関数
解説

csvファイルをHTMLのテーブルデータにする(csvToHTML)

CSVのデータをHTML(テーブル)に変換します。

クリップボードにcsvファイルのパスをコピーして実行します。

UWSC
使用関数
解説

ファイルを開いているプロセスを調べる

UWSC
使用関数
解説

楽天銀行定期預金の金利をExcelに保存

UWSC
使用関数

UWSC.INIよりUWSCを再生するホットキーを取得

Roamingフォルダ(C:\Users\username\AppData\Roaming\)のUWSCフォルダにあるUWSC.INIを読み込み、UWSCを停止するホットキーを取得します。

UWSC
[syntaxHighlight language="INI" title="UWSC.INI"][SET] Position=7,81 PlayHotKey=1,2 StopHotKey=2,2 RecHotKey=3,2 TrayHotKey=14,5 LunchMenuHotKey=14,0 MouseOrg=0 NotActive=0 StayOnTop=0 LogLines=2000 DefaultFont=, TaskTrayStart=1[/syntaxHighlight]
結果
プレーンテキスト
ALT+F1
使用関数
解説

関連記事

IE.Navigate メソッド
Shell.Explore メソッド
指定したディレクトリをエクスプローラで開きます。
FSO.GetExtensionName メソッド
指定したパスの最後のコンポーネントのファイル拡張子名を返します。
File.Path プロパティ (FSO)
指定したファイルのパスを返します。
getBitmap (自作関数)
引数に指定したビットマップ画像のサイズ(px)・幅(px)・高さ(px)・ビットの深さ(bpp)を配列で返します。
ShellLinkObject.Path プロパティ (Shell)
リンク オブジェクトへのパスを取得または設定します。
FSO.GetFolder メソッド
指定したパスのFolder オブジェクトを返します。