ParseName

指定されたアイテムのShell.FolderItem オブジェクトを作成し返します。

存在しなければNOTHINGを返します。

構文
  1. FolderItem = Folder.ParseName( bName )
引数
bName(BSTR必須
項目の名前を指定する文字列。
戻り値
Shell.FolderItem オブジェクト

Folder オブジェクトを返すメソッド・プロパティ

Shell.BrowseForFolder メソッド
フォルダ選択のダイアログボックスを表示し、選択したフォルダのFolderオブジェクトを返す。
Shell.NameSpace メソッド
指定されたフォルダのFolderオブジェクトを作成して返します。
FolderItem.GetFolder プロパティ
FolderItemオブジェクトがフォルダの場合、Shell.Folder オブジェクトを返します。

CONST ssfDesktop = 0

DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.NameSpace(ssfDesktop)
DIM FolderItem = Folder.ParseName("a.txt")

プログラム実行例

指定したファイルを削除する確認メッセージを表示

CONST ssfDesktop = 0

DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.NameSpace(ssfDesktop)
DIM FolderItem = Folder.ParseName("D:\Desktop\sample.txt")

FolderItem.InvokeVerb("delete")
    (3) (4) (5) (7)

指定したファイルを開く

CONST ssfDesktop = 0

DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.NameSpace(ssfDesktop)

DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM path = "D:\Desktop\sample.txt"
IF FSO.FileExists(path) = FALSE THEN EXIT

DIM FolderItem = Folder.ParseName(path)
FolderItem.InvokeVerb()
    (3,6) (4) (8) (10) (11)

プロパティの項目を取得

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オブジェクトを取得。

右クリックメニュー取得

CONST ssfDesktop = 0

DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.NameSpace(ssfDesktop)
DIM FolderItem = Folder.ParseName("sample.txt")

DIM FolderItemVerbs = FolderItem.Verbs

FOR i = 0 TO FolderItemVerbs.Count - 1
	PRINT FolderItemVerbs.Item(i).Name
NEXT
    (4) (5) (7)
  1. Shell.FolderItemsVerbs(7)
  2. Shell.FolderItemsVerbs.Count(9)
  3. Shell.FolderItemsVerbs.Item(10)
  4. Shell.FolderItemsVerb.Name(10)
結果
開く(&O)
印刷(&P)
編集(&E)

ALZipで圧縮(&L)
管理者権限で圧縮(&Y)
"a.zip" で圧縮(&Q)
コピー(&C)
削除(&D)
共有​​

以前のバージョンの復元(&V)

切り取り(&T)
コピー(&C)
ショートカットの作成(&S)
削除(&D)
名前の変更(&M)
プロパティ(&R)