本ページには広告が含まれています。
目次 [非表示]
指定したフォルダの親フォルダのパスを返します。
指定したパスは存在しなくてもエラーは発生しません。親フォルダを取得できない場合、空文字""を返します。
親フォルダ名のみを取得する場合は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 オブジェクトを返します。