将上传文件上传时,有两种处理方式,一种是将文件保存在数据库中的Blog字段中,另一种是数据库中只保存上传文件的路径,前一种方式删除时没有什么问题,后一种处理方式在删除时,如何在删除数据记录的同时将上传的文件一并删除?,后一种怎么编写代码,如何实现,高手帮忙哦

解决方案 »

  1.   

    if(File.Exists(Server.MapPath("~/file/")+filename)) 
    System.IO.File.Delete(Server.MapPath("~/file/")+filename);
      

  2.   

    用c#在控制台上不能使用server.mappath的
      

  3.   

    用c#在控制台上,连接数据库获得服务器路径,类似:http://localhost//。,通过该路径怎么实现删除服务器文件,必须是在应用程序控制台??高手帮忙啊
      

  4.   

    先将那删除的文件路径找出来(del)
    SQL语句:"delete 表名 where ID='" + upload1.DataKeys[e.RowIndex].Value.ToString() + "'"
     if (File.Exists(del)) File.Delete(del);
      

  5.   

    如果要在c#中这样子删除,则你当初存入的时候,也要写绝对路径,除非你那个文件夹是固定位置,一般我在数据库中存路径的时候,都是用绝对路径存的。给你一段代码参考:
    #region  创建采集数据生成位置配置文件
           public static void createSaveSiteXml(string filename)
           {
               string filepath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"\foder.xml";
               
               XmlTextWriter xtr = new XmlTextWriter(filepath, Encoding.UTF8);
               xtr.Formatting = Formatting.Indented;
               xtr.WriteStartDocument();
               xtr.WriteStartElement("folder");
               xtr.WriteElementString("folderName",filename);
               xtr.WriteEndElement();
               xtr.WriteEndDocument();
               xtr.Close();
           }
           #endregion楼主你注意这个filepath,你在删除的时候,就可以直接:
    string filepath=dt.rows[0]["filepath"].ToString();
    if(File.Exists(filepath))
       File.delete(filepath);