【问题标题】:Java JSP - Remove .DS_Store and show correct folder namesJava JSP - 删除 .DS_Store 并显示正确的文件夹名称
【发布时间】:2018-09-20 17:01:51
【问题描述】:

所以我正在查看 A 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>");
        }

    %> 

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

【问题讨论】:

    标签: java html jsp


    【解决方案1】:

    我怀疑,您正在查看一个空目录的内容? .DS_Store 文件由 finder 在 MacOS 上自动生成。它基本上是一个索引文件,其中包含当前目录的预览图片和元数据。我相信它们存在于您之前使用 finder 打开的目录中。

    如果您只在目录中看到 suhc 文件,我怀疑这是因为除了该文件之外该目录是空的。

    出于调试目的,您还可以渲染显示的文件和目录的绝对路径(使用 .getAbsolutePath() 而不是 .getName())这可能会给您更好地指示正在发生的事情。

    【讨论】:

      【解决方案2】:

      这不会删除 .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>");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-27
        • 2014-04-22
        相关资源
        最近更新 更多