Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

TreeItemから絶対パスの取得方法


度々すみません。
先日もTree関連で質問させていただきました。
何度も質問させていただいて本当にすみません。

今回はドラッグ&ドロップをTreeViewerとTreeViewerで行っているのですが、ディレクトリの中へドラッグしたものをコピーするときに、
1.どのディレクトリ(TreeItem A)をドラッグしてて、
2.どのディレクトリ(TreeItem B)の下へドロップしようとしているのか
わかりません。正確にいうとTreeItem AとTreeItem BのgetText()で名前はとってこれるのですが、どのファイル(ディレクトリ)を選択しているのかわかりません。選択されているファイルをファイル操作したいので絶対パスを取得したいのですがどのようにすればよいのでしょうか?

自分なりに調べてみたのですがわかりませんでした。
どなたか教えてください。お願いします。

1

回答

89811

閲覧

1件の回答

評価

0

前回の質問から「想像」するに"C:\"以下がエクスプローラ風にツリー表示されているとすると、単純に親アイテムを辿っていけばよいのではないかと。
これも再帰なんでコード例も書いちゃいますが...

private final String separator = System.getProperty("file.separator");

private String concatPaths(TreeItem item) {
    TreeItem parent = item.getParentItem();
    if (parent != null) {
        return concatPaths(parent) + separator + item.getText();
    }
    return item.getText();
}

(ルートがどう表示されているかは知りませんので)

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。