Перечислите файлы в каталоге, используя GWT - PullRequest
2 голосов
/ 07 ноября 2011

Я попробовал следующий код,

File folder = new File("/path/of/the/directory");
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) {
    if (listOfFiles[i].isFile()) {
        if ((listOfFiles[i].getName()).contains(".xml")) {
            Window.alert("File " + listOfFiles[i].getName());
        }
    }
}

Но я получил эту ошибку:

No source code is available for type java.io.File; did you forget to inherit a required module ?

Может кто-нибудь помочь мне сделать то же самое с помощью GWT?

Заранее спасибо, Гник

Ответы [ 2 ]

4 голосов
/ 07 ноября 2011

Краткий ответ

Вы не можете использовать класс Java.io.File в GWT.

За исключением случаев использования gwt-filesystem

Большой ответ

Из групп :

Вы не сможете использовать java.io.File на клиенте. Вы не можете получить доступ к файловой системе клиента без использования апплета, Flash, ActiveX или другой компонент, предоставленный пользователем разрешение.

Вам следует обратиться к Документации Google о Справочнике по эмуляции JRE .

Согласно документации:

Google Web Toolkit включает в себя библиотеку, которая эмулирует подмножество библиотеки времени выполнения Java. Приведенный ниже список показывает набор пакетов, типов и методов JRE, которые GWT может преобразовывать автоматически. Обратите внимание, что в некоторых случаях для данного типа поддерживается только подмножество методов.


Однако вы можете использовать gwt-filesystem project:

Эта библиотека добавляет поддержку файловой системы на основе браузера для приложений, разработанных с использованием Google Web Toolkit (GWT), на основе спецификации файловой системы HTML5.

0 голосов
/ 01 ноября 2014
    // Works fine with GWT 2.6.1 and appengine sdk 1.9.13 deployed to App Engine
    StringBuilder sb = new StringBuilder();
    java.io.File folder = new File(".");
    java.io.File[] listOfFiles = folder.listFiles();
    for (int i = 0; i < listOfFiles.length; i++) {
       sb.append(listOfFiles[i].getName() +"\n");
    }
    return sb.toString();

listOfFiles [i] .isFile ()) генерирует исключение java.security.AccessControlException, но вышеприведенное сработало. По умолчанию он возвращал имена файлов и папок верхнего уровня в моей войне, например, _ah WEB-INF home.html favicon.ico testfile.txt home.css home

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