FolderItem リファレンス
Tablacus Explorer が扱う 1 つのファイル/フォルダ/仮想フォルダ項目を表す FolderItem オブジェクトのリファレンスです。
記法: P=プロパティ、M=メソッド。
目次
- 概要
- 取得方法
- Tablacus Explorer 独自メンバー
- Windows 標準の FolderItem 互換のメンバー
- Windows 標準の FolderItem メンバー(委譲)
- 補足
- 使用例
1. 概要
シェルの FolderItem インターフェースを拡張したオブジェクトで、Tablacus 独自のメンバーに加えて、Windows 標準の FolderItem / FolderItem2 のメンバーもそのまま使えます(後者は Windows 側の実装に委譲されます)。
2. 取得方法
| 取得方法 | 返るもの |
|---|---|
FV.FolderItem |
現在のフォルダ |
FV.Item(i) / FV.FocusedItem |
ビュー内の項目 |
FolderItems.Item(i) |
コレクション内の項目(FolderItems リファレンス) |
api.ILCreateFromPath(path) |
パスから FolderItem |
api.ILGetParent(item) |
親フォルダの FolderItem |
api.SHParseDisplayName(name) |
表示名/パースパスから FolderItem |
api.SHSimpleIDListFromPath(path, attr, [date], size) |
パスから 簡易IDListのFolderItem |
FV.Items() / FV.SelectedItems() の各要素 |
FolderItem |
| イベントの引数 | OnBeforeNavigate などの Item 引数 |
3. Tablacus Explorer 独自メンバー
| 名前 | 種別 | 説明 |
|---|---|---|
Alt |
P | 代替の ItemIDList(OnTranslatePath の結果、なければ元のIDList)。代入すると「利用不可」状態が解除される |
Unavailable |
P | 「利用不可」状態の経過時間(ms)。0 以外を代入するとその時点から計測し、0 で解除。利用不可でなければ 0 |
Id |
P(読み) | セッションID(整数)。FolderItems 列挙の識別や FV.AddItem の整合確認に使う |
Enum |
P/M | 列挙用オブジェクトを保持するプロパティ(代入すると内部の列挙オブジェクトとして登録される)。 |
4. Windows 標準の FolderItem 互換のメンバー
| 名前 | 種別 | 説明 |
|---|---|---|
Path |
P(読み) | 完全なパス。ファイルシステム上は C:\Dir\a.txt、仮想フォルダは ::{GUID} 形式のパースパス |
Name |
P | フォルダ内での表示名(SHGDN_INFOLDER)。代入するとリネームする。OnSetName が登録されていれば先にそれが呼ばれ、戻り値があればその結果を採用する。名前が .xxx のように先頭ピリオドのみの場合、末尾に . を補って設定する |
5. Windows 標準の FolderItem メンバー(委譲)
内部で Windows のシェルオブジェクトに渡されます。主なメンバーは次のとおりです。
| 名前 | 種別 | 説明 |
|---|---|---|
IsFolder |
P | フォルダか(true/false) |
IsFileSystem |
P | ファイルシステム上のオブジェクトか |
IsLink |
P | ショートカットか |
IsBrowsable |
P | 開ける(ナビゲート可能な)か |
Size |
P | サイズ(バイト) |
Type |
P | 種類の文字列(「テキスト ドキュメント」等) |
ModifyDate |
P | 更新日時(代入で変更も可) |
GetFolder |
P | Folder オブジェクトを返す(子項目を Items() で列挙できる) |
GetLink |
P | ショートカットの ShellLinkObject |
Parent |
P | 親 |
Application |
P | Shell.Application |
Verbs() |
M | 動詞(右クリックメニュー項目)の一覧 |
InvokeVerb([verb]) |
M | 動詞を実行する(省略時は既定の動詞) |
InvokeVerbEx(verb, args) |
M | 引数付きで動詞を実行する |
ExtendedProperty(name) |
M | プロパティ値を取得する("System.Size"、"{GUID} pid" 等)。System.Link.TargetParsingPath は、結果が空のときにジャンクション/シンボリックリンクの参照先を補って返す |
これらは Windows 側のバージョンにより利用できる範囲が異なります(FolderItem2 系は Windows 7 以降)。
6. 補足
FolderItemはパス文字列などから生成された時点ではIDListを持たず、必要になったときに解決されます。解決に失敗した項目はそのままパス文字列として保持されます。- 存在しない/アクセス不能な項目では、委譲メンバーが
E_FAIL等で失敗し、値が返りません。 - 単独でも
Name・Pathの取得は IDList なしで可能です。 - FolderItem を受け取る
api関数(GetDisplayNameOf、GetAttributesOf、ILIsEqualなど)は、FolderItem・パス文字列・IDList・Pathを持つオブジェクトを自動的に受け付けます。
7. 使用例
// パスから FolderItem を作ってナビゲート
const item = api.ILCreateFromPath("C:\\Windows");
FV.Navigate(item, SBSP_SAMEBROWSER);
// 基本的なプロパティ
const path = item.Path;
const isFolder = item.IsFolder;
// リネーム
item.Name = "newname.txt";
// 拡張プロパティ
const size = item.ExtendedProperty("System.Size");
// 親フォルダ
const parent = api.ILGetParent(item);