我想做一个功能,一个页面有一个文本框,一个按钮,文本框里面输入本地磁盘的地址(注意要是最后一级目录),点击查询,将最后一级目录下的文件全部导出到页面(文本框和按钮的下方),导出后可以对每个文件进行下载!!!对了,各位大侠最好写的详细点,小弟是菜鸟
解决方案 »
- frame中的jsp的路径问题
- Java调用DB2的导出命令
- 关于jbpm和hibernate的问题
- 如何为“默林”图标增加右键菜单?
- js问题:现有两个按钮和一个文本框,当点按钮时判断文本框中是否含有此按钮的value,如果有则去掉它,无则添加它
- 数组问题
- ffmpeg在web下加水印的相对路径怎么表达?
- jfreechart在普通的java application好用吗
- 找不到类?HttpServletRequest
- IE浏览器,在页面停留大约1分钟左右,点击页面提交Post请求时,后台无法获取到请求参数,F12查看发现Content-Length为0
- 程序执行时碰到个怪问题
- validation.xml 显示错误信息 能不能每次只显示一个?
response.setContentType("application/octet-stream");
String fileName =文件名;
fileName = java.net.URLEncoder.encode(fileName, "utf-8");
response.setHeader("Content-disposition", "attachment; filename="+fileName);
然后是文件流操作,将文件写入respose的输出流。3. 这样点击超链接,页面就会弹出下载框下载了。
后来又想将其保存到数组中,结果还是一样的
package com.download.bean;import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;import com.download.FileInfo;/**
* 文件扫描类�ļ�ɨ����
*
* @author Dell
*
*/
public class FileScanBean {
private String errorMessage = ""; // 错误消息处理 List<FileInfo> fileList = new ArrayList<FileInfo>(); /**
* 对文件目录进行扫描,遍历输出,返回一个集合
*
* @param filePath
* @return fileList
* @throws Exception
* @throws Exception
*/
public void scanDirectory(String filePath) {
File fileUrl = null;
String[] str = null;
try {
// 获取当前目录
fileUrl = new File(filePath);
// 判断是否存在当前目录
if (fileUrl.isDirectory() == false) {
allFileList(fileUrl);
return;
}
// 用数组进行取值
str = fileUrl.list();
// 进行遍历输出
for (int i = 0; i < str.length; i++) {
// 获取下一级目录
File ufileUrl = new File(filePath + File.separator + str[i]);
// 判断下一级目录是否存在
if (ufileUrl.isDirectory() == false) {
allFileList(ufileUrl);
} else {
// 自己从先调用一下自己
scanDirectory(filePath + File.separator + str[i]);
}
}
} catch (Exception e) {
e.printStackTrace();
// 打印错误消息
this.setErrorMessage(e.getMessage());
}
} /**
* ��ȡ�����ļ���所有文件信息
*
* @param file
* @throws Exception
*/
public void allFileList(File file) throws Exception {
// 创建一个文件对象
FileInfo fileInfo = new FileInfo();
fileInfo.setPath(file.getPath());
// 格式输出最后访问时间
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
String time = formater.format(new Date(file.lastModified()));
fileInfo.setLastModifyTime(time);
// 保存到集合中
fileList.add(fileInfo);
} public String getErrorMessage() {
return errorMessage;
} public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
}
Servlet中的代码如下:
String keyWord = null; // 字符串关键字
FileScanBean fileScanBean = new FileScanBean();
keyWord = request.getParameter("keyWord");
out.print("***************************");
fileScanBean.scanDirectory("C:\\");
out.print("----------------------");
if (keyWord == "") {
// 判断如果关键字字符串为空,默认查询此目录 C:\Program Files
fileScanBean.scanDirectory("C:\\Program Files");
} else {
fileScanBean.scanDirectory(keyWord);
}
request.setAttribute("keyWord", keyWord);但是结果出不来啊!麻烦大侠们看看是不是代码有问题