File.Delete(path) 运行时,报删除文件失败,我晕了,。。
我看了路径写法是正确的,还有系统格式为Fat32,应不是权限问题吧??
请大哥们指教了,请大家分析一下
具体的代码明早上班可以帖上来

解决方案 »

  1.   

    1)首选要注意的是权限问题,必须赋予用户ASPNET(win2k)在该目录完全控制的权限;
    2)注意文件路径的问题;
    如果是绝对路径
    System.IO.File.Exists(@"D:\新建文本文档.txt")
    System.IO.File.Exists("D:\\新建文本文档.txt")
    相对路径
     string path1 = Server.MapPath("/images/test.gif");
     string path2 = Server.MapPath("\\images\\test.gif");
     string path3 = Server.MapPath(@"\images\test.gif");都是可以的
      

  2.   

    回复人: Eddie005(♂) 暴赱 『零零伍』 (︶︵︶) --------------------------------------------------谢谢,代码明早帖上文件并没有在使用,我是在文件上传以后,并马上删除?难道是上传需要关闭啥?路径也明早调试时帖出,请明早帮我关注一下,谢谢大哥。
      

  3.   

    需要关闭文件流
    如:fs.Close()
      

  4.   

    我是以 .SaveAs()?上传的啊?  也要?
      

  5.   

    你在该目录没有权限,设置该文件所在文件夹的ASP.net帐号具有写的权限
      

  6.   

    是路径不对吧,写全路径试试。ASP.NET 如果写相对路径,是从 inetpub\wwwroot\AppPath 下开始的。
      

  7.   

    winform/web?
    winform:
    string path=****;
    if(File.Exists(path))
    try{
       File.Delete(path);
    }
    catch(Expection ex)
    {
    MessageBox.Show(ex.tostring);
    }
    else
    {
    ;
    //code
    }
    令:文件上传要看注意,文件是否完全上传?是否上传完毕?
    没有上传完文件会处于读写状态,不能删除.
    可以用timer/filesystemwatch控件进行控制
      

  8.   

    .NET技术 ASP.NET  ? 这是啥?呵呵,谢谢楼上关心。是Web.
    ----------------------------------------------
    路径应没有错误因为它能另存为,也应读取正确地址了吧。。我在上传文件夹的路径能检查到每次上传的路径,但不知 SaveAs是否需要关闭?其次,可能是权限吧,我明早再检查一下:)
    另外,随便问一下: Asp.Net中,如何获取到出错信息?catch(Expection ex)
    {
    MessageBox.Show(ex.tostring);
    }以上是C#的,如何转变一下?
      

  9.   

    你在该目录没有权限,设置该文件所在文件夹的ASP.net帐号具有写的权限----------------------------------------------------------------请教一下,Fat32格式的win2003操作系统,在那设置权限呢?谢谢
      

  10.   

    string sPath ;
    SqlConnection con = new SqlConnection(Configuration.ConnectionString);
    con.Open();
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    string sql = "select File_Path from UpFiles where ID = " + ID + ";delete from UpFiles where ID = " + ID;
    cmd.CommandText = sql;
    object o = cmd.ExecuteScalar();
    sPath = Convert.ToString(o); con.Close();
                                        //检索路径,删除
    System.IO.File.Delete(sPath);
      

  11.   

    catch(Exception ex)
    {
    Response.Write(ex.Message);
    }
      

  12.   

    调试结果:
    sPath=@"D:\welon\UpFiles\200512591045.doc-----------------------------------------
    if(File.Exists(sPath))
    {
    System.IO.File.Delete(sPath);
    }
    我晕,加上这一句,它原来并没有执行删除,但我检查了路径没有错啊?难道写法有错了?
      

  13.   

    sPath=Server.MapPath("/UpFiles/200512591045.doc");-----------------------------------------
    if(File.Exists(sPath))
    {
    System.IO.File.Delete(sPath);
    }
      

  14.   

    更晕了,啊????????????????????????上传文件0字节了??????????????????????/获取当前选择文件
    string fileName = File1.PostedFile.FileName.Substring( File1.PostedFile.FileName.LastIndexOf("\\") + 1);

    char[] cha={'.'};
    string[] Values=fileName.Split(cha);
    string fileName_Start = Values[0].ToString();  //文件名
    string fileName_End = Values[1].ToString();  //文件扩展名 //根据服务器时间给文件命名(File_ID)
    string  filetime = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + "." + fileName_End;
    string Myway= "\\UpFiles\\" + filetime;  //保存到服务器端的文件名

    File1.PostedFile.SaveAs(Server.MapPath(Request.ApplicationPath)+ Myway);//上传文件并保存到服务器路径帮帮我啊?
      

  15.   

    上传代码昨天改了一些文件名,以时间方式保存,结果上传的文件为0字节?为何啊?
    if(File.Exists(sPath)) ,此外,删除文件加上这句,结果没有执行删除,应是路径
    写法出错了??怎么办?sPath=@"D:\welon\UpFiles\200512591045.doc ,这是查询的结果
      

  16.   

    File1.PostedFile.SaveAs(Server.MapPath(Request.ApplicationPath)+ Myway);//上传文件并保存到服务器路径??????????????????????难道这句有问题??我修改保存到当前项目路径的文件夹下?不可以吗?
      

  17.   

    你跟踪看Server.MapPath(Request.ApplicationPath)+ Myway是不是你想要的路径。
      

  18.   

    你跟踪看Server.MapPath(Request.ApplicationPath)+ Myway是不是你想要的路径。-------------------------------------------------------------------------是的,我检查了,文件名或文件都存在我所放的当前项目文件夹目录下。那位大哥可以把代码建个项目试一试吗??谢谢了我真晕死,下传都失败......................................
      

  19.   

    string FileN= File1.PostedFile.FileName.Trim();
    if(FileN!="")
    {-------------------------------------------
    我晕,前面第一句指定文件名就不全了??为何啊?
      

  20.   

    看看你的磁盘文件系统是不是NTFS的,是的话右击你的WEB文件夹,在安全一项里把aspnet用户添加进去并设成可读写文件夹
      

  21.   

    谢谢,应是权限问题了,我上传桌面的文件不行。。但到其它磁盘却可以了。
    Fat32的权限应在哪加?
      

  22.   

    楼上几位大哥说的没错,原因出在我设置了IIs的匿名访问指定到aspnet,所以才出现以上情况。。
    现在我把它去掉,可以正常上传了,谢谢,应是权限问题了,Fat32的权限应在哪加?
      

  23.   

    sPath= @"D:\welon\UpFiles\2005125101214.exe                                                     -------------------------------------以下句并没有执行,说明保存路径或提出路径有问题?                                                                                        if(File.Exists(sPath))
    {
    System.IO.File.Delete(sPath);
    }
      

  24.   

    问题已有一位兄弟帮我解决:)
    就是删除时,路径不正确。。
    先提醒一下楼上几位,一般权限在Fat32下无须设置吧。问题出现在我设置保存路径的类型上 narcahr: 500 ,所以调试发现路径后有大长空串字符后来经过csdn一位兄弟提醒后,我改为: char: 100长度,通过 :)
    结帖,希望后来人也吸取一点点经验吧:)