首页 新闻 会员 周边

删除服务器图片 .net

0
[已关闭问题]

我是用的Handler处理程序来做的,总是删除不了文件,而且还报错,说不存在我保存的地址

Handler类里面就是传入一个ids

 

public void deleteRecord(string ids)
{
try
{
string[] idArr = ids.Split(',');
for (int i = 0; i < idArr.Length; i++)
{
            
Weekly w
= new Weekly("ID",idArr[i]);//这个是一个实体类
            //w.CoverImage就是我保存的地址
System.IO.FileInfo file
= new System.IO.FileInfo(w.CoverImage);
            //w.UploadUrl也是我保存的地址
System.IO.FileInfo file2
= new System.IO.FileInfo(w.UploadUrl);
if (file.Exists)
{
file.Delete();
}
if (file.Exists)
{
file2.Delete();
}

}


}
catch (Exception)
{

}
}

 

 

 

aXinNo1的主页 aXinNo1 | 菜鸟二级 | 园豆:370
提问于:2010-03-03 17:10
< >
分享
其他回答(7)
0

if (file.Exists)
                    {
                        file.Delete();
                    }
                   
if (file.Exists)
                    {
file2.Delete();
                    }
这里写的有点问题,第二个  if (file.Exists)应该是  if (file2.Exists),其次请保证w.UploadUrl为绝对路径(物理路径)如@"D:\WebFiles\Temp\1\3344.jpg"或者"D:\\WebFiles\\Temp\\1\\3344.jpg".在Handler文件中你可以使用HttpContext.Current.Server.MapPath("Web服务器的虚拟路径")来获取文件的物理路径。
其次需要保证该文件夹具备操作权限,读取、写入、修改等操作权限,最简单的方法是给该存储文件夹添加一个Everyone用户,并设定该用户具备读取、写入、修改等操作权限。
 添加用户的方式 选中文件夹 右键>>属性>>安全>>添加>>高级>>立即查找>>搜索结果 中 选中Everyone用户,确定>>确定,然后选中组或者用户名称 中 的 Everyone用户,然后在Everyone的权限 中设置 修改,然后确定即可。

西越泽 | 园豆:10775 (专家六级) | 2010-03-03 17:21
0

如果报的不存在,看看文件路径是不是有误

另外检查一下是否有Network Service帐户的可写权限,如果是XP,就是Asp.net帐户的

查尔斯 | 园豆:3832 (老鸟四级) | 2010-03-03 17:24
0

1. if 

(file.Exists)
{
file2.Delete();
}

有问题,该是:

(file2.Exists)
{
file2.Delete();
}

2.最好给出错误信息

3.根据错误信息,大概有两种情况:

   1.路径错误

   2.没有权限

LittlePeng | 园豆:3445 (老鸟四级) | 2010-03-03 18:34
0

可能跟待删除的文件的路径和当前执行删除操作的用户的权限有关

风影极光 | 园豆:1573 (小虾三级) | 2010-03-03 20:07
1

断点调试下

生鱼片 | 园豆:5757 (大侠五级) | 2010-03-03 21:33
0

估计是删除图片的路径找不到!程序调式下,应该会比较清楚。

langford | 园豆:710 (小虾三级) | 2010-03-03 21:39
0

应该是小问题,不是权限问题就是路径问题,LZ耐心点多调试调试

陳修君 | 园豆:480 (菜鸟二级) | 2010-03-04 14:00
0

权限或者路径

clound | 园豆:481 (菜鸟二级) | 2010-03-05 12:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册