急,.net程序删除文件时总是提示异常
我写的一个文件删除应用程序,部分代码如下:picName = dt.Rows[i][0].ToString();//从数据库中得到文件名.
FileInfo fi = new FileInfo(Server.MapPath(pathname + picName));//创建FileInfo对象
if (fi.Exists) fi.Delete();//如果文件存在就删除它!!
运行后,总是报错,异常说是拒绝访问:
Server Error in '/' Application.
--------------------------------------------------------------------------------
Access to the path 'xxxx' is denied.
Line 305: if (fi.Exists) fi.Delete();//这句异常
我的环境是windows 2003 + iis6+.net 2.0 framework.我已经把要删除的文件所在目录的everyone权限设为可修改,可写入等权限.
你们遇到过这样的问题吗?到底应该怎样解决呢? --------------------编程问答-------------------- 看看NETSERVCE(好像是这个名字....)的权限! --------------------编程问答-------------------- LS说的是Net_Service用户的权限吧 --------------------编程问答-------------------- 权限,权限,权限!!!! --------------------编程问答-------------------- 权限问题,,,
Network Service 权限 --------------------编程问答-------------------- 我已经把要删除的文件所在目录的everyone权限设为可修改,可写入等权限.
-------------------------------------------------
文件的權限呢? --------------------编程问答-------------------- Net_Service 的权限是完全控制,仍然是原来那个异常. --------------------编程问答-------------------- 把分配给这个站点的iis 帐户 和asp.net帐户 授予特定目录的删除权限 --------------------编程问答-------------------- 1. Print the exception
try
{
//Your delete code
}
catch(Exception e)
{
Response.Write(e.Message + " " + e.StackTrace);
}
2. Your code's logic looks like incorrect
picName = dt.Rows[i][0].ToString();//从数据库中得到文件名.
FileInfo fi = new FileInfo(Server.MapPath(pathname + picName));//创建FileInfo对象
if (fi.Exists) ---- This verification is needn't, if this file does not exist, a exception should be throw in above code
fi.Delete();//
I think you should update your code like that:
if(File.Exist(filePath))
{
File.Delete(filePath)
} --------------------编程问答-------------------- 你试试添加一个users的用户,然后权限为完全控制,或者把文件夹的只读属性去掉,我碰到这种问题就是这样解决了 --------------------编程问答-------------------- 给Everyone 完全控制的权限试试 --------------------编程问答-------------------- 操作系统是xp asp_net权限
03 network service 权限 --------------------编程问答-------------------- if (File.Exists(bakPath))
File.Delete(bakPath); --------------------编程问答-------------------- 目录加上aspnet帐户的删除修改权限试试 --------------------编程问答-------------------- File.delete("文件内容"); --------------------编程问答-------------------- protected void Button3_Click(object sender, EventArgs e)
{
//删除
for (int i = 0; i < Repeater1.Items.Count; i++)
{
if (((CheckBox)Repeater1.Items[i].FindControl("CheckBox1")).Checked)
{
string id = ((HiddenField)Repeater1.Items[i].FindControl("HiddenField1")).Value;
string dir = ((HiddenField)Repeater1.Items[i].FindControl("HiddenField2")).Value;
//ssm.delete_sql_admin(Convert.ToInt32(id));
//ssm.delete_sql_two(Convert.ToInt32(id));
//ssm.delete_sql_three(Convert.ToInt32(id));
this.Repeater1.DataSource = ssm.serch_main_admin();
this.Repeater1.DataBind();
//删除文件夹之前 要先删除文件
try{
DirectoryInfo di=new DirectoryInfo(Server.MapPath(dir));
if(di.Exists==true){
di.Delete(true);//删除本机器上的文件夹,以及文件夹中的文件用DirectoryInfo就可以搞定了
}
}catch(Exception ex){
Response.Write("<script>alert('" + ex.Message + "');</script>");
}
}
}
}
补充:.NET技术 , ASP.NET