asp.net 文件操作
string strPath = Server.MapPath("~/roomindex");
/// <summary>
/// 用递归方法删除文件夹目录及文件
/// </summary>
/// <param name="dir">带文件夹名的路径</param>
public void DeleteFolder(string dir)
{
if (Directory.Exists(dir)) //如果存在这个文件夹删除之
{
foreach (string d in Directory.GetFileSystemEntries(dir))
{
if (File.Exists(d))
File.Delete(d); //直接删除其中的文件
else
DeleteFolder(d); //递归删除子文件夹
}
Directory.Delete(dir, true); //删除已空文件夹
}
}
确保您具有足够的权限 对路径 的访问被拒绝
删除权限设置:
在web.config中的<system.web>下加入<identity impersonate="true"/>
/// <summary>
/// 创建文件夹
/// </summary>
/// <param name="Path"></param>
public void FolderCreate(string Path)
{
// 判断目标目录是否存在如果不存在则新建之
if (!Directory.Exists(Path))
Directory.CreateDirectory(Path);
}
遍历文件夹下所有子文件夹,并且遍历配置文件某一节点中所有key,value并且绑定到GridView上
asp.net 遍历文件夹下全部子文件夹,遍历ini配置文件节点下所有key和value,取多行
Helper app_Helper = new Helper();
DataSet ds = new DataSet();
DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
gvwBind();
}
#region 绑定GridView
/// <summary>
/// 绑定GridView
/// </summary>
protected void gvwBind()
{
INI.INIPath iniINIPath = new INI.INIPath();
INI.INIFile iniINIFile = new INI.INIFile(iniINIPath.getINIPath());
string FolderNames = app_Helper.GetAllFolder(Server.MapPath("http://www.cnblogs.com/APPDIR"));//获得APPDIR文件夹下所有子文件夹名
string[] FolderName = new string[FolderNames.Split(',').Length - 1];//声明个数组为了保存文件夹绝对路径
FolderName = FolderNames.Split(',');//给文件夹绝对路径数组赋值
dt.Columns.Add("LKNAME", typeof(string));
dt.Columns.Add("qdjsjm", typeof(string));
dt.Columns.Add("qdipdz", typeof(string));
for (int i = 0; i < FolderName.Length - 1; i++)
{
DataRow row = dt.NewRow();
FolderName[i] = FolderName[i].Substring(FolderName[i].LastIndexOf('\\') + 1);//截取文件夹名
row["LKNAME"] = FolderName[i];//给 LKNAME 字符赋值
if (!iniINIFile.IniReadValue("dzjclkzp", FolderName[i]).Equals(""))//配置文件中是否存在相同文件夹名的key
{
row["qdjsjm"] = iniINIFile.IniReadValue("dzjclkzp", FolderName[i]).Split(',')[0];//给qdjsjm字段赋值
row["qdipdz"] = iniINIFile.IniReadValue("dzjclkzp", FolderName[i]).Split(',')[1];//给qdipdz字段赋值
}
dt.Rows.Add(row);
}
gvwGKWH.DataSource = dt;//绑定到数组
gvwGKWH.DataBind();
}
修改文件夹名
protected void Button1_Click(object sender, EventArgs e)
{ try
{ DirectoryInfo di = new DirectoryInfo(TextBox1.Text);
if (di.Exists)
{ di.MoveTo(TextBox2.Text);
Label1.Text = "修改文件夹名成功!" ;
}
}
catch (Exception error)
{
Label1.Text = "失败,原因:" + error.ToString( );
}
}
查看文件夹是否存在
protected void Button1_Click(object sender, EventArgs e)
{
try
{
if (Directory.Exists(TextBox1.Text))
{
Label1.Text = "该文件夹存在!";
}
else
{
Label1.Text = "该文件夹不存在!";
}
}
catch (Exception error)
{
Label1.Text = "失败,原因:" + error.ToString( );
}
}
图片上传
if (FileUpload1.PostedFile.FileName == "")
{
Label1.Text = "您还没有选择图片!";
return;
}
else
{
string filepath = FileUpload1.PostedFile.FileName;
string filename=filepath.Substring(filepath.LastIndexOf("\\")+1);
string fileEx = filepath.Substring(filepath.LastIndexOf(".") + 1);
string serverpath = Server.MapPath("File/") + filename;
if (fileEx == "jpg" || fileEx == "bmp" || fileEx == "gif")
{
FileUpload1.PostedFile.SaveAs(serverpath);
Image1.ImageUrl = "File/" + filename;
Label1.Text = "上传成功!";
}
else
{
Label1.Text = "上传的图片扩展名错误!";
}
}
单文件上传
protected void Button1_Click(object sender, EventArgs e)
{
try
{
if (FileUpload1.PostedFile.FileName == "")
{ Label1.Text = "要上传的文件不允许为空!";
return;
}
else
{
string filepath = FileUpload1.PostedFile.FileName;
string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1);
string serverpath = Server.MapPath("File/") + filename;
FileUpload1.PostedFile.SaveAs(serverpath);
Label1.Text = "上传成功!";
}
}
catch (Exception error)
{
Label1.Text = "处理发生错误!原因:" + error.ToString( );
}
}
多文件上传
关键技术
本实例首先通过System.Collections命名空间的ArrayList类存储生成的临时控件,然后应用FileUpload类中的SaveAs方法将文件保存到服务器指定路径中,FileUpload类中的SaveAs方法,其语法格式如下。
public void SaveAs(string filename)
filename:一个字符串,指定服务器上保存上载文件的位置的完整路径。
本实例主要应用该方法的语句如下。
FileUpload1.PostedFile.SaveAs(serverpath);
3.实现过程
(1)新建一个网站,将其命名为Ex12_10,默认主页为Default.aspx.。
(2)在该页中添加1个Table表格、1个FileUpload控件、2个Button控件和1个Label控件,分别用于页面布局、选择上传文件、执行上传操作、添加上传控件和执行状态提示。
(3)主要程序代码如下。
设置首次打开页面时调用SFUPC( )方法,每执行一次就向缓存中添加一个FileUpload控件,代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)//首次执行页面
{
SFUPC( );
}
}
触发【上传文件】按钮的Click事件,在该事件中调用UpFile( )方法执行文件上传操作,代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
UpFile( );//执行上传文件
}
触发【添加文件】按钮的Click事件,在该事件中调用InsertC( )方法执行添加上传控件的操作,代码如下:
protected void Button2_Click(object sender, EventArgs e)
{
InsertC( );//执行添加控件方法
}
定义一个方法SFUPC( ),该方法用于保存当前页面上传文件控件集到缓存中,代码如下:
private void SFUPC( )
{
ArrayList AL = new ArrayList( );//创建动态增加数组
foreach (Control C in F.Controls)
{
if (C.GetType( ).ToString( ) == "System.Web.UI.HtmlControls.HtmlTableRow")
{
HtmlTableCell HTC = (HtmlTableCell)C.Controls[0];
foreach (Control FUC in HTC.Controls)
{
if (FUC.GetType( ).ToString( ) == "System.Web.UI.WebControls.FileUpload")
{
FileUpload FU = (FileUpload)FUC;
AL.Add(FU);
}
}
}
}
Session.Add("FilesControls", AL);
}
定义一个方法InsertC( ),该方法用于添加一个上传文件的控件,代码如下:
private void InsertC( )
{
ArrayList AL = new ArrayList( );
this.F.Rows.Clear( );
GetInfo( );
HtmlTableRow HTR = new HtmlTableRow( );
HtmlTableCell HTC = new HtmlTableCell( );
HTC.Controls.Add(new FileUpload( ));
HTR.Controls.Add(HTC);
F.Rows.Add(HTR);
SFUPC( );
}
定义一个方法GetInfo( ),该方法用于读取缓存中存储的上传文件控件集,代码如下:
private void GetInfo( )
{
ArrayList AL = new ArrayList( );
if (Session["FilesControls"] != null)
{
AL = (System.Collections.ArrayList)Session["FilesControls"];
for (int i = 0; i < AL.Count; i++)
{
HtmlTableRow HTR = new HtmlTableRow( );
HtmlTableCell HTC = new HtmlTableCell( );
HTC.Controls.Add((System.Web.UI.WebControls.FileUpload)AL[i]);
HTR.Controls.Add(HTC);
F.Rows.Add(HTR);
}
}
}
定义一个方法UpFile( ),该方法用于执行文件上传操作,代码如下:
private void UpFile( )
{
string FilePath = Server.MapPath("./") + "File";
HttpFileCollection HFC = Request.Files;
for (int i = 0; i < HFC.Count; i++)
{
HttpPostedFile UserHPF = HFC[i];
try
{
if (UserHPF.ContentLength > 0)
{
UserHPF.SaveAs(FilePath + "\\" + System.IO.Path.GetFileName(UserHPF.FileName));
}
}
catch
{
Label1.Text = "处理出错!";
}
}
if (Session["FilesControls"] != null)
{
Session.Remove("FilesControls");
}
Label1.Text = "上传成功!";
}

浙公网安备 33010602011771号