因此我正在查看JSP页面中的文件。但是,目录中的所有文件夹仅显示为“ .DS_Store”,而不显示所有具有正确名称的文件夹。我从未在以下线程中使用过此代码: How to list contents of a server directory using JSP?
代码:
<table class="main" id="tableMain">
<thead>
<th scope="col">First</th>
<%@page import="java.io.*" %>
<%@page import="java.util.*" %>
<%! public void GetDirectory(String a_Path, Vector a_files, Vector a_folders) {
File l_Directory = new File(a_Path);
File[] l_files = l_Directory.listFiles();
for (int c = 0; c < l_files.length; c++) {
if (l_files[c].isDirectory()) {
a_folders.add(l_files[c].getName());
} else {
a_files.add(l_files[c].getName());
}
}
}
%>
<%
Vector l_Files = new Vector(), l_Folders = new Vector();
GetDirectory("/Library/Tomcat/webapps/HelloServlet/uploads", l_Files, l_Folders);
for (int a = 0; a < l_Files.size(); a++) {
out.println("<tr>");
out.println("<td>" + l_Files.elementAt(a).toString() + "</td>");
out.println("</tr>");
}
%>
任何帮助将不胜感激,谢谢!
答案 0 :(得分:1)
我怀疑您正在查看一个空目录的内容? .DS_Store文件由finder自动在MacOS上生成。它基本上是一个索引文件,其中包含当前目录的预览图片和元数据。我相信它们存在于您之前用finder打开的目录中。
在您只看到suhc目录中的文件的情况下,我怀疑这是因为除该文件外,该目录为空。
出于调试目的,您还可以渲染显示的文件和目录的绝对路径(使用 .getAbsolutePath()代替 .getName()),这可能会给您更好地指示正在发生的事情。
答案 1 :(得分:0)
这不会删除.DS_Store目录,但是会列出目录中的文件夹以及文件:
String file = application.getRealPath("/safe");
File f = new File(file);
String [] fileNames = f.list();
File [] fileObjects= f.listFiles();
for (int i = 0; i < fileObjects.length; i++) {
if(!fileObjects[i].isFile() || !fileObjects[i].isDirectory()){
String fname = file+fileNames[i];
out.print("<tr>");
out.println("<td>" + fileNames[i] + "</td>");
out.print("</tr>");