今天我做了页面,在页面后台有个事件来删除本机的一个文件
代码如下:
string strid=(string)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
string url=Server.MapPath("../image/chanpin/")+strid+".gif");
TextBox1.Text=url;//
if(File.Exists(url)) //检查文件是否存在
{
    File.Delete(url); //删除文件
}
这里的url实际上取出来的值为:c:\inetpub\wwwroot\tianfeng\image\chanpin\1-0.gif
这个地址绝对没有问题,为了试验1000000分之一的差错,我再开始-〉运行里面打入了url,随后图片浏览器顺利的打开了0-1.gif文件!可是if(File.Exists(url)) 却怎么也不进去执行File.Delete(url); 而且更奇怪的是系统有时候却又能找到文件!我被他打败了!你呢?

解决方案 »

  1.   

    if(File.Exists(url)) //检查文件是否存在
    {
        File.Delete(url); //删除文件
    }
    与URL为:c:\inetpub\wwwroot\tianfeng\image\chanpin\1-0.gif的文件看看有没有权限
      

  2.   

    直接搜索"c:\inetpub\wwwroot\tianfeng\image\chanpin\1-0.gif"確定有這個文件嗎﹖如果有我還真沒碰過
      

  3.   

    c盘是NTFS分区吧,那就要看看你的程序有没有权限删除文件!!!
      

  4.   

    权限没有问题~~FAT32格式的,加断点测试了无数次!根本找不到文件的存在,同时文件肯定是存在的!郁闷死了~~~
      

  5.   

    应该与你的权限有关
    你可以把图片所在的的文件夹的所有权限给Asp.net用户
    IIS6下是NetService,IIS5下是{MACHINE}\ASPNET试试看
      

  6.   

    补充一点,这个跟权限应该一点关系没有!因为第一步if(File.Exists(url)) //检查文件是否存在系统就没有找到文件!!
      

  7.   

    是啊,正是因为没有权限才这样子的&)&,如果还不行,换个文件试试看
      

  8.   

    我本机在页面测试上传正常!我的系统是FAT32格式的~~不存在权限问题!而且没有乱码,我用TextBox显示了url一切正常!c:\inetpub\wwwroot\tianfeng\image\chanpin\1-0.gif1-0不是违法文件名吧?
      

  9.   

    这个.net就是这样得,它处理得是服务器嘛,它不可能控制客户端得窝,你考虑js脚本吧
      

  10.   

    你不会是删除客户端的文件吧,这样用很搞笑哟:-)对比两个语句,请问语句2中的1-0.gif中的-是怎么来的???没见你的程序上有'-' !!!
    1.string url=Server.MapPath("../image/chanpin/")+strid+".gif");2.c:\inetpub\wwwroot\tianfeng\image\chanpin\1-0.gif
      

  11.   

    string strid=(string)DataGrid1.DataKeys[(int)e.Item.ItemIndex];不可能自动给你加'-'
      

  12.   

    strid本身取出来的就是"1-0",这个是没有问题的!还有就是虚拟目录也是没有问题~