本ページには広告が含まれています。
目次
指定したフォルダの親フォルダのパスを返します。
指定したパスは存在しなくてもエラーは発生しません。親フォルダを取得できない場合、空文字""を返します。
親フォルダ名のみを取得する場合はFileSystemObject.GetParentFolderNameを使います。
- 構文
- String = FileSystemObject.GetParentFolderName( path )
- 引数
- path省略可
- 親フォルダを取得するパス
- 戻り値
- 親フォルダのパス
使い方
D:\Desktop\sample\の親フォルダのパスを取得します。
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
PRINT FSO.GetParentFolderName("D:\Desktop\sample\")
- 結果
D:\Desktop
プログラム実行例
ファイルの作成日時・更新日時・アクセス日時を書き換える
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>;" + _
)
使用関数
パス名からファイル名・拡張子・ベース名・親フォルダを取得
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM path = "D:\Desktop\sample.txt"
WITH FSO
PRINT "ファイル名︰" + .GetFileName(path)
PRINT "ベース名︰" + .GetBaseName(path)
PRINT "拡張子︰" + .GetExtensionName(path)
PRINT "親フォルダ︰" + .GetParentFolderName(path)
ENDWITH
結果
ファイル名︰ 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
使用関数
解説
プロパティの項目を取得
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] + ","+ Folder.GetDetailsOf(FolderItem, iColumn[array[i]])
NEXT
//////////////////////////////////////////////////
// 【引数】
// inputs : 繰り返す文字列
// multiplier : inputsを繰り返す回数
// 【戻り値】
// inputsをmultiplier回を繰り返した文字列を返します
//////////////////////////////////////////////////
FUNCTION strRepeat(inputs, multiplier)
DIM res = ""
FOR n = 1 TO multiplier
res = res + inputs
NEXT
RESULT = res
FEND
//////////////////////////////////////////////////
// 【引数】
// arrayname : 上限値を求める配列の名前
// dimension : 返す次元を示す整数
// 【戻り値】
// 配列の上限値
//////////////////////////////////////////////////
FUNCTION UBound(arrayname[], dimension = 1)
RESULT = EVAL("RESIZE(arrayname" + strRepeat("[0]", dimension - 1) + ")")
FEND
結果
名前, Internet Explorer
項目の種類, ショートカット
ファイルの説明,
フォルダーのパス, C:\ユーザー\akita\AppData\Roaming\Microsoft\Windows\スタート メニュー\プログラム\Windows アクセサリ
サイズ, 1.31 KB
作成日時, 2021/02/04 12:46
更新日時, 2022/05/18 02:24
アクセス日時, 2023/04/24 00:29
属性, A
使用関数
解説
指定フォルダ内の拡張子をすべて小文字にする
CONST ssfDESKTOP = 0
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM folderspec = Shell.NameSpace(ssfDESKTOP).Self.Path
DIM Folder = Shell.NameSpace(folderspec + "\test\")
DIM FolderItems = Folder.Items
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
FOR FolderItem IN FolderItems
DIM path = FolderItem.Path
WITH FSO
DIM filename1 = .GetParentFolderName(path) + "\" + .GetBaseName(path) + "." + .GetExtensionName(path)
DIM filename2 = .GetBaseName(path) + "." + STRCONV(.GetExtensionName(path), SC_LOWERCASE)
ENDWITH
DOSCMD("RENAME <#DBL>" + filename1 + "<#DBL> <#DBL>" + filename2 + "<#DBL>")
NEXT
使用関数
解説
デスクトップにChromeのショートカットを作成
デスクトップにGoogle Chromeで[createLink url="https://google.co.jp" title="https://google.co.jp"]をシークレットモードで起動するショートカットを作成します。
CONST ssfDesktop = 0
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM Folder2 = Shell.NameSpace(ssfDesktop)
DIM path = Folder2.Self.Path + "\Chrome.lnk"
DIM WshShortcut = WshShell.CreateShortcut(path)
WITH WshShortcut
DIM chromePath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
.Description = "Chromeをシークレットモードで起動します。"
.Hotkey = "Ctrl+Shift+C"
.IconLocation = chromePath + ",7"
.TargetPath = chromePath
.WindowStyle = 3
.Save
ENDWITH
Folder = Shell.NameSpace(FSO.GetParentFolderName(path))
DIM FolderItem = Folder.ParseName(FSO.GetFileName(path))
DIM ShellLinkObject = FolderItem.Getlink()
DIM Args[] = "--incognito", "https://google.co.jp"
WITH ShellLinkObject
.Arguments = JOIN(Args)
.Save
ENDWITH
結果
使用関数
解説
関連記事
- Folder.ParentFolder プロパティ (Shell)
- 指定したフォルダの親のFolder オブジェクトを返します。