当前位置:编程学习 > C#/ASP.NET >>

急,.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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,