Java JSP-删除.DS_Store并显示正确的文件夹名称

时间:2018-09-20 17:01:51

标签: java html jsp

因此我正在查看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>");
        }

    %> 

任何帮助将不胜感激,谢谢!

2 个答案:

答案 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>");