Как получить имя на java.io.file.listFiles? - PullRequest
2 голосов
/ 23 декабря 2010

Вот мой код, базовое древовидное представление для списка каталогов в API jviewfx listview, немного измененное для моих нужд.

    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();

}

Я довольно новичок в программировании, я не могу понять, как получить имена массива java.io.file для цикла в функции createchildren.когда этот код запускается, он перечисляет абсолютный путь каждого элемента в древовидной структуре, делает его уродливым и трудным для чтения.Альтернативный вариант, который я бы использовал, - как получить имя моего файла def dir = new ("{home_dir} / Android_Surgeon / Projects"), а затем перейти к подпапкам и файлам с абсолютным путем.Первый вариант является предпочтительным.Неделю пытался сам, устал и нуждался в помощи !!!Спасибо ...

1 Ответ

0 голосов
/ 23 декабря 2010

Это похоже на Javascript, а не на Java.Но если этот класс File принадлежит Java, вы просто вызываете f.getName().Глядя на ваш код, я предполагаю, что вы захотите установить data из TreeItem в имя файла.

Итак:

TreeItem {
    data: f.getName();
    createChildren: createChildren;
    isLeaf: isLeaf;
}

Либо это, либо установитеdata некоторой оболочке для объекта File, который реализует toString для возврата только имени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...