Java 使用超链接在jsp中显示文件和文件夹

Java 使用超链接在jsp中显示文件和文件夹,java,file,jsp,Java,File,Jsp,我想访问目录中的文件和文件夹,比如“c:/Test/Example/NewExample.pdf”。 我想动态创建一个jsp页面,其中列出根文件夹中的所有文件夹。一旦我点击任何文件夹,它就会显示它的内容等等。它是一个树状结构,但有超链接 我使用递归函数获取数据以获取文件夹内容,但无法动态生成jsp public void listDirectory(String dirPath, int level) { File dir = new File(dirPath); File[

我想访问目录中的文件和文件夹,比如“c:/Test/Example/NewExample.pdf”。 我想动态创建一个jsp页面,其中列出根文件夹中的所有文件夹。一旦我点击任何文件夹,它就会显示它的内容等等。它是一个树状结构,但有超链接

我使用递归函数获取数据以获取文件夹内容,但无法动态生成jsp

  public void listDirectory(String dirPath, int level) {
    File dir = new File(dirPath);
    File[] firstLevelFiles = dir.listFiles();
    if (firstLevelFiles != null && firstLevelFiles.length > 0) {
        for (File aFile : firstLevelFiles) {
            for (int i = 0; i < level; i++) {
                System.out.print("\t");
            }
            if (aFile.isDirectory()) {
                System.out.println("[" + aFile.getName() + "]");

                listDirectory(aFile.getAbsolutePath(), level + 1);
            } else {
                System.out.println(aFile.getName());
            }
        }
    }
}
public void列表目录(字符串dirPath,int级别){
文件目录=新文件(目录路径);
File[]firstLevelFiles=dir.listFiles();
if(firstLevelFiles!=null&&firstLevelFiles.length>0){
对于(文件:firstLevelFiles){
对于(int i=0;i
这就是我列出数据的方法。我添加了有序列表和href标记,以列表格式显示。但这只提供了第一级之前的数据。dirPath是我想要数据的路径。现在,一旦我在jsp页面中编写了这段代码,我就必须使用scriptlet。现在,由于这是一个递归函数,我必须再次调用jsp中声明的相同函数。现在,当我为这个声明的方法添加list标记时,会出现错误

这就是我到现在为止所做的。如果我想浏览文件夹,我该怎么做呢。这将打印目录的内容,我可以访问文件,但我也需要访问文件夹

try {
                File currentDir = new File("path to my directory inside project"); // current directory
                //File currentDir = new File("C:/Users/NehaSingh/Desktop/imp");
                System.out.println("     currentDir:" + currentDir.getCanonicalPath());
                System.out.println("     currentDir:" + currentDir.getAbsolutePath());

                File[] files = currentDir.listFiles();
                for (File file : files) {
                    if (file.isDirectory()) {
                        System.out.println("directory:" + file.getCanonicalPath());
                        String fn=file.getCanonicalPath();
                        String fnList[]=fn.split("WebContent");
                        String b="";
                        for(int i=0;i<fnList.length;i++)
                        {
                             b=fnList[i];
                            System.out.println("     b:" + b);

                        }
                        %>
                        <h2>b: <%=b %></h2>
                        <a href="./<%=b%>"><%=file.getName()%></a>
                        <%
                        //displayDirectoryContents(file);
                    } else {
                        String fn=file.getCanonicalPath();
                        String fnList[]=fn.split("WebContent");
                        String c="";
                        for(int i=0;i<fnList.length;i++)
                        {
                             c=fnList[i];
                            System.out.println("     c:" + c);

                        }
                        System.out.println("     file:" + file.getCanonicalPath());
                        %>
                        <h2>c: <%=c %></h2>
                        <a href="./<%=c%>"><%=file.getName()%></a>

                        <%
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        %>
试试看{
File currentDir=new File(“项目中我的目录的路径”);//当前目录
//File currentDir=新文件(“C:/Users/NehaSingh/Desktop/imp”);
System.out.println(“currentDir:+currentDir.getCanonicalPath());
System.out.println(“currentDir:+currentDir.getAbsolutePath());
File[]files=currentDir.listFiles();
用于(文件:文件){
if(file.isDirectory()){
System.out.println(“目录:”+file.getCanonicalPath());
字符串fn=file.getCanonicalPath();
字符串fnList[]=fn.split(“WebContent”);
字符串b=“”;
对于(int i=0;i
b:

您尝试了什么,遇到了什么问题?您所说的“动态生成jsp”是什么意思?【链接】我希望结构是这样的好吧,现在我们知道了你想要实现什么。现在告诉我们,你已经尝试了什么。所以不是为了提供完整的解决方案,而是为了帮助解决具体问题。@NikolasCharalambidis现有链接和演示查看链接。我认为现在已经有了完整的详细信息。所以你发布了你的需求,现在询问我们来做这项工作?你知道开发人员是一项有报酬的工作,不是吗?所以我的建议是,写下你的要求,找一些专业人士,或者如果你是开发人员,问一些你面临的特定编程问题(并发布相关代码)。你尝试了什么,你有什么问题?你所说的“动态生成jsp”是什么意思??[连结]我希望结构是这样的好吧,现在我们知道了你想要实现什么。现在告诉我们,你已经尝试了什么。所以不是为了提供完整的解决方案,而是为了帮助解决具体问题。@NikolasCharalambidis现有链接和演示查看链接。我认为现在已经有了完整的详细信息。所以你发布了你的需求,现在询问让我们来做这项工作?你知道开发人员是一项有报酬的工作,不是吗?所以我的建议是,写下你的要求,找一些专业人士,或者如果你是开发人员,问一些你面临的特定编程问题(并发布你的相关代码)