如何在java.io.file.listFiles上获取getName?

时间:2010-12-23 06:24:58

标签: java javafx

这是我的代码,javafx listview api中目录列表的基本树视图,根据我的需要进行了一些修改。

    def home_dir = System.getProperty("user.home");
    def dir = new File("{home_dir}/Android_Surgeon/Projects");

var projectTree = TreeView {

        root: TreeItem {
        data: dir
        expanded:false
        isLeaf: isLeaf
        createChildren: createChildren;
    }
    showRoot: false

}

function createChildren(item:TreeItemBase):TreeItemBase[] {
var file = item.data as File;
if (file.isDirectory()) {
    return for (f in file.listFiles()) {
        TreeItem {
            data: f
            createChildren: createChildren;
            isLeaf: isLeaf;
        }
    }

}
return [];

}

function isLeaf(item:TreeItemBase):Boolean {
def file = item.data as File;
return file.isFile();

}

我对编程很新,我无法弄清楚如何在createchildren函数中获取java.io.file数组for循环的名称。运行此代码时,它会列出树视图中每个项目的绝对路径,使其难看并且难以阅读。另一个我会使用的替代方法是如何获取我的def dir = new File(“{home_dir} / Android_Surgeon / Projects”)的名称,然后继续让子文件夹和文件具有绝对路径。第一种选择是首选。经过一周的尝试,累了,需要帮助!!!感谢...

1 个答案:

答案 0 :(得分:0)

看起来像Javascript,而不是Java。但是如果那个File类是Java,那么你只需要调用f.getName()。查看您的代码,我猜您要将data的{​​{1}}设置为文件名。

所以:

TreeItem

或者将TreeItem { data: f.getName(); createChildren: createChildren; isLeaf: isLeaf; } 设置为实现data的{​​{1}}对象的某个包装器以仅返回名称。