我想做一个功能,一个页面有一个文本框,一个按钮,文本框里面输入本地磁盘的地址(注意要是最后一级目录),点击查询,将最后一级目录下的文件全部导出到页面(文本框和按钮的下方),导出后可以对每个文件进行下载!!!对了,各位大侠最好写的详细点,小弟是菜鸟

解决方案 »

  1.   

    这个有什么难的?输入路径后,点击查询,在java中判断这个路径,如果是目录的话,就将目录下的所有文件获得,并且用程序迭代此文件数组显示在页面上。
      

  2.   

    文件流读取啊。给你个思路1. 首先读取该磁盘下所有文件,以超级连接形式出现在也没,让用户点击下载,这个是纯文件操作,查下jdk api就可以了。2. 读取文件也是文件操作,上面那些超链接链接的都是action(假设你用strurs,也可以是servlet)中取文件的方法。这个方法里面就是根据超链接传过来的路径和文件名读取文件。然后在这个方法的末尾。为resposne设置下面。ServletOutputStream out = response.getOutputStream();
    response.setContentType("application/octet-stream");
    String fileName =文件名;
    fileName = java.net.URLEncoder.encode(fileName, "utf-8");
    response.setHeader("Content-disposition", "attachment; filename="+fileName);
    然后是文件流操作,将文件写入respose的输出流。3. 这样点击超链接,页面就会弹出下载框下载了。
      

  3.   

    小弟本来想将其放到List中,再到页面上遍历出来,但是效果出不来啊
    后来又想将其保存到数组中,结果还是一样的
      

  4.   

    小弟到bean中的代码如下:
    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);但是结果出不来啊!麻烦大侠们看看是不是代码有问题