掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
特定のフォルダとtreeviewの構成を合わせるには? (ID:9799)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
フォルダの中のフォルダを一覧し、その一覧中のフォルダの中のフォルダを一覧し、・・・と続きますよね。 再帰処理でなくてもよいのですが、簡単なので再帰で提示します。 procedure RebuildFolderTree(FullPath: String; View: TTreeView; SelfNode: TTreeNode); var sr: TSearchRec; Node: TTreeNode; // 各子ディレクトリ用のノード begin // faDirectoryでもいいけれど。 if FindFirst(FullPath + '\*.*', faAnyFile, sr) = 0 then begin repeat if sr.Attr = faDirectory then begin // .や..は相対パスの自分/親なのでパス if (sr.Name = '.') or (sr.Name = '..') then Continue; // 自分のディレクトリの中の、各子ディレクトリ用のNodeを作成 Node := View.Items.AddChild(SelfNode, sr.Name); // 子ディレクトリ内のディレクトリを検索(再帰処理) RebuildFolderTree(FullPath + '\' + sr.Name, View, Node); end else begin Continue; end; until FindNext(sr) <> 0; FindClose(sr); end; end; こんな感じになります。 使い方は、 RebuildFolderTree(検索ディレクトリのルートパス, TreeViewオブジェクト, nil); となります。 最後がnilであれば、TreeViewの最初の子として登録されます。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.