我尝试了以下代码,
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做同样的事吗?
提前致谢, Gnik
答案 0 :(得分:4)
简短回答
您不能在GWT中使用Java.io.File
类。
除非您使用gwt-filesystem
“大”回答
来自groups:
您将无法在客户端上使用java.io.File。 如果不使用Applet,则无法访问客户端的文件系统, Flash,ActiveX或用户授予的其他组件 权限。
您应该转到有关JRE Emulation Reference。
的Google文档根据文件:
Google Web Toolkit包含一个模拟Java运行时库子集的库。下面的列表显示了GWT可以自动转换的JRE包,类型和方法的集合。请注意,在某些情况下,给定类型仅支持一部分方法。
但是,您可以使用gwt-filesystem项目:
该库为基于HTML5 FileSystem规范的使用Google Web Toolkit(GWT)开发的应用程序添加了基于浏览器的FileSystem支持。
答案 1 :(得分:0)
// 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