2015-06-03 4 views
0

ФункцияКак получить файлы из проекта Eclipse?

set[loc] visibleFiles(loc l) 

от от Util :: FileSystem позволяет получить файлы из каталога.

Однако это не работает, если местоположение является проектом Eclipse. Предположим, мы применяем

visibleFiles(|project://HelloWorld/|); 

тогда мы получаем, за исключением Java

java.lang.IllegalArgumentException: Path must include project and resource name: /HelloWorld(internal error) at $shell$(|main://$shell$|) 
java.lang.IllegalArgumentException: Path must include project and resource name: /HelloWorld 
    at org.eclipse.core.runtime.Assert.isLegal(Assert.java:63) 
    at org.eclipse.core.internal.resources.Workspace.newResource(Workspace.java:2131) 

Итак, как получить файлы в проекте Eclipse?

Для полноты я даю пример проекта с только один файл Java:

public class HelloWorld 
{ 
    public static void main(String[] args) { 
    System.out.println("Hello World!"); 
    } 
} 

ответ

0

Для схемы проекта, я думаю, мошенник хочет знать путь, в котором он должен начать. Попробуйте |project://HelloWorld/src/|.

В конце функция visibleFiles является оберткой для поля местоположения источников (в сочетании с другими функциями определения местоположения источника).

0

Добавление «/ src» на самом деле не помогает.

visibleFiles(|project://HelloWorld/src/|); 

приводит

set[loc]: {|project://HelloWorld/src/|} 

Это на самом деле то, что мы можем ожидать, начиная с

isDirectory(|project://HelloWorld/src/|); 

reduceer к "ложным", и у нас есть

@doc{ 
Synopsis: lists all files recursively ignored files and directories starting with a dot. 
} 
set[loc] visibleFiles(loc l) { 
    if (/^\./ := l.file) 
    return {}; 
    else if (isDirectory(l)) 
    return {*visibleFiles(f) | f <- l.ls}; 
    else 
    return {l}; 
} 

Итак, это сводится к применению «ls»;

|project://HelloWorld/|.ls 

дает ошибку я сообщил ранее, в то время как

|project://HelloWorld/src/|.ls 

дает сообщение

IO("You can only access ls on an existing location.") 
+0

вы могли бы сделать вопрос GitHub с полной трассировки стека? это должно сработать. (также сообщите, какая версия мошенника вы используете) –

+1

Потенциально глупый вопрос, но есть ли HelloWorld новый проект без каких-либо файлов? Использование 'ls' в папке' src' работает для меня, но если вы только что создали проект, каталог src появится в проводнике проекта, но на самом деле не существует (на диске), пока вы не добавите к нему файл. –

Смежные вопросы