ASP.NET 三种获取指定文件路径下所有文件的文件名和路径的方法

1  后台代码,主要通过一个触发按钮来体现效果

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnOpenWord_Click(object sender, EventArgs e)
    {
      //  string tmpFileName = "C:\\Users\\hardenchen\\Desktop\\jyzx_20091229180011-0.doc";
        string tmpFileName = "C:\\Users\\hardenchen\\Desktop\\telephone_list.pdf";
        FileInfo tmpFI = new FileInfo(tmpFileName);
        Response.Clear();
        Response.ClearHeaders();
        Response.Buffer = false;

        Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(Path.GetFileName(tmpFileName), System.Text.Encoding.UTF8));
        Response.AppendHeader("Content-Length", tmpFI.Length.ToString());
        Response.ContentType = "application/octet-stream";
        Response.WriteFile(tmpFileName);
        Response.Flush();
        Response.End();
    }
    protected void btnGetFileName_Click(object sender, EventArgs e)
    {
        //string path = "D:\\jimmy";
        //string[]   filenames=Directory.GetFiles (path);
        //foreach(string files  in   filenames)
        //    {
        //          Response.Write(files.Replace(path,""));
        //     }

        //********************************************************

        //DirectoryInfo dir = new DirectoryInfo (@"d:jimmy");
        //FileInfo[] finfo = dir.GetFiles ();
        //string fnames = string.Empty ;
        //for (int i = 0; i < finfo.Length; i++)
        //{
        //    fnames += finfo[i].FullName  + " <br> ";
        //}
        //Response.Write(fnames);


        //*****************************************************

        ArrayList list= getallfilesbyfolder(@"d:jimmy", true);
        string fnames = string.Empty;
        foreach (String file in list)
        {
            fnames += file + " <br> ";
        }
        Response.Write(fnames);

    }


    /// <summary>
    /// 获取指定文件夹下所有的文件名称
    /// </summary>
    /// <param name="foldername">指定文件夹名称,绝对路径</param>
    /// <param name="filefilter">文件类型过滤,根据文件后缀名,如:*,*.txt,*.xls</param>
    /// <param name="iscontainsubfolder">是否包含子文件夹</param>
    /// <returns>arraylist数组,为所有需要的文件路径名称</returns>
    public static ArrayList getallfilesbyfolder(string foldername, string filefilter, bool iscontainsubfolder)
    {
        ArrayList resarray = new ArrayList();
       
        string[] files = Directory.GetFiles(foldername, filefilter);
        for (int i = 0; i < files.Length; i++)
        {
            resarray.Add(files[i]);
        }
        if (iscontainsubfolder)
        {
            string[] folders = Directory.GetDirectories (foldername);
            for (int j = 0; j < folders.Length; j++)
            {
                //遍历所有文件夹
                ArrayList temp = getallfilesbyfolder(folders[j], filefilter, iscontainsubfolder);
                resarray.AddRange(temp);
            }
        }
        return resarray;
    }

    /// <summary>
    /// 获取指定文件夹下所有的文件名称,不过滤文件类型
    /// </summary>
    /// <param name="foldername">指定文件夹名称,绝对路径</param>
    /// <param name="iscontainsubfolder">是否包含子文件夹</param>
    /// <returns>arraylist数组,为所有需要的文件路径名称</returns>
    public static ArrayList getallfilesbyfolder(string foldername, bool iscontainsubfolder)
    {
        return getallfilesbyfolder(foldername, "*", iscontainsubfolder);
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值