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);
}
}