1
<h1>Directories</h1>
<ul>
<%
String root="c:/Repository/WebApplication/mydocs/javadoc/";
java.io.File file;
java.io.File dir = new java.io.File(root);

String[] list = dir.list();

if (list.length > 0) {

for (int i = 0; i < list.length; i++) {
file = new java.io.File(root + list[i]);
if (file.isDirectory()) {
%>
<li><a href="javadoc/<%=list[i]%>" target="_top"><%=list[i]%></a><br>
<%
 }
}
}
%>
</ul>

上面的代码有效,即它列出了所有文件,我只想列出特定扩展名的文件,例如.txt。谁能告诉我该怎么做?

4

2 回答 2

3

您需要一个FilenameFilter并以这样的方式实现它的方法accept,即您只接受具有您需要的扩展名的文件。

这是一个示例代码

new File("").list(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
            return name.endsWith(".txt");
        }
    });

请注意,此代码不区分大小写,因此以 结尾的文件.TXT将被过滤掉。您可能想要提取扩展名,然后使用equalsIgnoreCase进行比较。或者,您可以在调用 endsWith 之前使用 小写name

于 2013-05-02T19:14:05.450 回答
0
<%@ page import="java.io.*" %>
<% 
    String file = application.getRealPath("/results");
    File f = new File(file);
    String [] fileNames = f.list();
    int i = 0;
    String fname=null;
    File [] fileObjects= f.listFiles();
    BufferedReader readReport;
    int num=0;

    {
        %>
        <table name="reports">
        <th width=12.5% align="center" bgcolor="gray">Execution ID</th>
        <th width=12.5% align="center" bgcolor="gray">Parent suite name</th>
        <th width=12.5% align="center" bgcolor="gray">Execution date</th>
        <th width=12.5% align="center" bgcolor="gray">Total execution time(seconds)</th>
        <th width=12.5% align="center" bgcolor="gray">Pass</th>
        <th width=12.5% align="center" bgcolor="gray">Fail</th>
        <th width=12.5% align="center" bgcolor="gray">Skip</th>
        <th width=12.5% align="center" bgcolor="gray">Summary</th>
        <%
    }

    for (i=0; i < fileObjects.length; i++)
    {

        if(!fileObjects[i].isDirectory())
            {
            fname = "../results/"+fileNames[i];

            if(fname.endsWith(".html"))
            {
                String Name = fileNames[i].substring(0, fileNames[i].indexOf('.'));


                    { 
                        %>
                        <tr bgcolor="lightgray">
                            <td width=12.5% align="center">
                                <%=Name%>
                            </td>

                            <td width=12.5% align="center">

                            </td>

                            <td width=12.5%  align="center">

                            </td>

                            <td width=12.5%  align="center">

                            </td>

                            <td width=12.5%  align="center">

                            </td>

                            <td width=12.5%  align="center">

                            </td>

                            <td width=12.5%  align="center">

                            </td> 

                            <td width=12.5%  align="center">
                                <a HREF="<%= fname %>" target="loadReport"><button>View</button></a>
                            </td>
                        </tr>

                        <%
                    }
                }
        }
    }
    {%></table> <%}
%>
于 2017-03-08T10:07:52.047 回答