FolderItems リファレンス

FolderItem の集まり(コレクション)を表す FolderItems オブジェクトのリファレンスです。

記法: P=プロパティ、M=メソッド。

目次

  1. 概要
  2. 取得方法
  3. メンバー
  4. ドラッグ&ドロップ/クリップボード関連
  5. 内部動作
  6. 使用例

1. 概要

選択中のアイテム、ドロップされたアイテム、履歴などに使われ、IDataObject としても動作するため、ドラッグ&ドロップやクリップボードにそのまま渡せます(api.OleSetClipboard(items)、api.DoDragDrop(items, ...) など)。


2. 取得方法

取得方法 返るもの
FV.Items() / FV.SelectedItems() FolderItems(引数 true で SafeArray)
FV.History FolderItems(履歴)
te.FolderItems() 空の FolderItems(te.FolderItems(dataObject) でIDataObjectから作成)
api.DataObject() 空の FolderItems(api.OleGetClipboard() の結果も FolderItems)
イベントの引数 OnDrop の dataObj など

3. メンバー

名前 種別 説明
Count / length P(読み) アイテム数
Item(index) M index(0始まり)の FolderItem を返す。Item(index, newItem) のように第2引数を渡すと、その位置を置き換える。Item(-1) は親フォルダ(共通の親、取得可能な場合)を返す。範囲外は空を返す
AddItem(item) M アイテムを末尾に追加する。item は FolderItem・パス文字列・IDList。パス文字列は FolderItem に変換して格納される
_NewEnum P 列挙用(Enumerator で使う)
Index P 現在位置(0始まり)。履歴(FV.History)では現在位置の指定に使う
Application P(読み) Shell.Application
Parent P(読み) 常に空
Data P スクリプトが自由に保持できる値

4. ドラッグ&ドロップ/クリップボード関連

名前 種別 説明
dwEffect P ドロップ効果の値(DROPEFFECT_*)。ドロップ操作の結果が入る
pdwEffect P(読み) dwEffect を指す Memory(DWORD)。api.DoDragDrop 等に渡す
hDrop(x, y, fNC) P CF_HDROP 形式の HDROP ハンドルを返す。x,y,fNC を指定するとドロップ位置(DROPFILES の pt/fNC)を設定した状態で返す(取得できなければ空)
GetData() M IDataObject のテキスト(CF_UNICODETEXT、なければ CF_TEXT)を返す。無ければ空
SetData(text) M テキストを設定し、この FolderItems を「テキストを持つデータ」として扱う(UseText が true になる)
UseText P true のときテキストデータを優先して提供する

5. 内部動作


6. 使用例

// 選択項目のパスを取得
const items = FV.SelectedItems();
for (let i = 0; i < items.Count; i++) {
    const item = items.Item(i);
    const path = item.Path;
    const isFolder = item.IsFolder;
}

// JavaScriptの配列風に取得
for (let i = 0; i < items.length; i++) {
    const item = items[i];
    const path = item.Path;
    const isFolder = item.IsFolder;
}

// for...in で列挙
for (const item in FV.Items()) { /* ... */ }

// 独自の FolderItems を作ってビューで選択
const list = te.FolderItems();
list.AddItem("C:\\Windows\\notepad.exe");
list.AddItem("C:\\Windows\\explorer.exe");
FV.SelectItem(list, SVSI_SELECT | SVSI_DESELECTOTHERS);

// クリップボードにコピー
api.OleSetClipboard(list);

関連