Java 使用超链接在jsp中显示文件和文件夹
我想访问目录中的文件和文件夹,比如“c:/Test/Example/NewExample.pdf”。 我想动态创建一个jsp页面,其中列出根文件夹中的所有文件夹。一旦我点击任何文件夹,它就会显示它的内容等等。它是一个树状结构,但有超链接 我使用递归函数获取数据以获取文件夹内容,但无法动态生成jspJava 使用超链接在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[
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现有链接和演示查看链接。我认为现在已经有了完整的详细信息。所以你发布了你的需求,现在询问让我们来做这项工作?你知道开发人员是一项有报酬的工作,不是吗?所以我的建议是,写下你的要求,找一些专业人士,或者如果你是开发人员,问一些你面临的特定编程问题(并发布你的相关代码)