GetFileName

指定したパスの最後のコンポーネントのファイル名またはフォルダー名を返します。

構文
FileSystemObject.GetFileName( pathspec )
引数
pathspec
ファイルの絶対パスまたは相対パス。
戻り値

プログラム実行例

ファイルの作成日時・更新日時・アクセス日時を書き換える

DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")

DIM path = "D:\Documents\sample.txt"
DIM folderspec = FSO.GetParentFolderName(path)
DIM filename = FSO.GetFileName(path)
DIM CreationTime = "2022/07/01 00:00:00"      // 作成日時
DIM LastWriteTime = "2022/07/01 00:00:00"     // 更新日時
DIM LastAccessTime = "2022/07/01 00:00:00"    // アクセス日時

PRINT POWERSHELL("pushd <#DBL>" + folderspec + "<#DBL>;" + _
                    "Set-ItemProperty " + filename + " -name CreationTime -value  <#DBL>" + CreationTime + "<#DBL>;" + _
                    "Set-ItemProperty " + filename + " -name LastWriteTime -value  <#DBL>" + LastWriteTime + "<#DBL>;" + _
                    "Set-ItemProperty " + filename + " -name LastAccessTime -value  <#DBL>" + LastAccessTime + "<#DBL>;" + _
)
    (1) (3) (4) (10)

パス名からファイル名・拡張子・ベース名・親フォルダを取得

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

WITH FSO
	PRINT "ファイル名<#TAB>" + .GetFileName(path)
	PRINT "ベース名<#TAB>" + .GetBaseName(path)
	PRINT "拡張子<#TAB><#TAB>" + .GetExtensionName(path)
	PRINT "親フォルダ<#TAB>" + .GetParentFolderName(path)
ENDWITH
    (1) (5) (6) (7) (8)
結果
ファイル名	sample.txt
ベース名	sample
拡張子		txt
親フォルダ	D:\Desktop

メモ帳に本文を入力し[名前を付けて保存]ダイアログボックスを開いて保存する

DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM path = "D:\Desktop\sample.txt"
DIM folderspec = FSO.GetParentFolderName(path)
DIM filename = FSO.GetFileName(path)

EXEC("notepad")
DIM ID = GETID("メモ帳", "Notepad")
SENDSTR(ID, "内容", 0)
CLKITEM(ID, "ファイル\名前を付けて保存", CLK_MENU)

IFB FSO.FolderExists(folderspec) THEN
	DIM ID2 = GETID("名前を付けて保存", "#32770")

	CTRLWIN(ID2, ACTIVATE)
	SLEEP(0.500)

	SCKEY(ID2, VK_F4)
	SENDSTR(ID2, folderspec, 1, TRUE)
	SCKEY(ID2, VK_RETURN)
	SLEEP(0.500)

	SCKEY(ID2, VK_ALT, VK_N)
	SENDSTR(ID2, filename, 1, TRUE)
	SLEEP(0.500)

	CLKITEM(ID, "保存", ITM_BTN)
ELSE
	PRINT "フォルダが存在しません。"
ENDIF
    (1) (3) (4) (6) (7,12) (8.19,25) (9,28) (11) (14) (15,21,26) (18,20,24)
解説
  1. 1行目
    DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
    FileSystemObjectオブジェクトを生成し、 FSO に代入します。
  2. 2行目
    DIM path = "D:\Desktop\sample.txt"
    保存先のパスを指定。
  3. 3行目
    DIM folderspec = FSO.GetParentFolderName(path)
    パスからフォルダ部分を取得。
  4. 4行目
    DIM filename = FSO.GetFileName(path)
    パスからファイル名を取得。
  5. 6行目
    EXEC("notepad")
    メモ帳を起動。
  6. 7行目
    DIM ID = GETID("メモ帳", "Notepad")
    メモ帳のIDを取得。
  7. 8行目
    SENDSTR(ID, "内容", 0)
    メモ帳に文章を入力。
  8. 9行目
    CLKITEM(ID, "ファイル\名前を付けて保存", CLK_MENU)
    [名前を付けて保存]を実行。
  9. 11,27,29行目
    IFB FSO.FolderExists(folderspec) THEN
    	…
    ELSE
    	…
    ENDIF
    変数pathに指定したフォルダが存在したら12行目>>>、存在しなければ28行目>>>
  10. 12行目
    	DIM ID2 = GETID("名前を付けて保存", "#32770")
    [名前を付けて保存]ダイアログボックスのIDを取得。
  11. 14行目
    	CTRLWIN(ID2, ACTIVATE)
    [名前を付けて保存]ウインドウをアクティブ化する。
  12. 15行目
    	SLEEP(0.500)
    0.500秒待機する。
  13. 17行目
    	SCKEY(ID2, VK_F4)
    F4キーでアドレスバーを選択。
  14. 18行目
    	SENDSTR(ID2, folderspec, 1, TRUE)
    フォルダ名を入力。
  15. 19行目
    	SCKEY(ID2, VK_RETURN)
    Enterキーで確定・移動。
  16. 20行目
    	SLEEP(0.500)
    0.500秒待機する。
  17. 22行目
    	SCKEY(ID2, VK_ALT, VK_N)
    Alt+Nでファイル名を選択。
  18. 23行目
    	SENDSTR(ID2, filename, 1, TRUE)
    ファイル名を入力。
  19. 24行目
    	SLEEP(0.500)
    0.500秒待機する。
  20. 26行目
    	CLKITEM(ID, "保存", ITM_BTN)
    [保存]ボタンをクリックする。

プロパティの項目を取得

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

DIM path = "C:\Users\akita\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk"
DIM Folder = Shell.NameSpace(FSO.GetParentFolderName(path))

HASHTBL iColumn
 
FOR i = 0 TO 350
	iColumn[Folder.GetDetailsOf(EMPTYPARAM, i)] = i	
NEXT

FOR i = 0 TO LENGTH(iColumn)
	iColumn[iColumn[i, HASH_VAL]] = iColumn[i, HASH_KEY]
NEXT

DIM FolderItem = Folder.ParseName(FSO.GetFileName(path))
DIM array[] = "名前", "項目の種類", "ファイルの説明", "フォルダーのパス", "サイズ", "作成日時", "更新日時", "アクセス日時", "属性"

FOR i = 0 TO UBound(array)
	PRINT "■" + array[i]
	PRINT Folder.GetDetailsOf(FolderItem, iColumn[array[i]])
	PRINT "-----"
NEXT

//////////////////////////////////////////////////
// 【引数】
//   配列 : 上限値を求める配列 
// 【戻値】
//   配列の上限値 
//////////////////////////////////////////////////
FUNCTION UBound(array[])
	RESULT = RESIZE(array)
FEND
    (1,2) (5) (5) (10,22) (17) (17) (20)
結果
■名前
Internet Explorer
-----
■項目の種類
ショートカット
-----
■ファイルの説明

-----
■フォルダーのパス
C:\ユーザー\akita\AppData\Roaming\Microsoft\Windows\スタート メニュー\プログラム\Windows アクセサリ
-----
■サイズ
1.31 KB
-----
■作成日時
2021/02/04 12:46
-----
■更新日時
2022/05/18 02:24
-----
■アクセス日時
2022/05/21 22:47
-----
■属性
A
-----
解説
  1. 1行目
    DIM Shell = CREATEOLEOBJ("Shell.Application")
    Shellオブジェクトを生成し、 Shell に代入します。
  2. 2行目
    DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
    FileSystemObjectオブジェクトを生成し、 FSO に代入します。
  3. 4行目
    DIM path = "C:\Users\akita\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk"
    情報を取得するファイルパスを指定。
  4. 5行目
    DIM Folder = Shell.NameSpace(FSO.GetParentFolderName(path))
    pathからフォルダ名を取得し、そのFolderオブジェクトを取得。