我是用的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)
{
}
}
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的权限 中设置 修改,然后确定即可。
如果报的不存在,看看文件路径是不是有误
另外检查一下是否有Network Service帐户的可写权限,如果是XP,就是Asp.net帐户的
1. if
(file.Exists)
{
file2.Delete();
}
有问题,该是:
(file2.Exists)
{
file2.Delete();
}
2.最好给出错误信息
3.根据错误信息,大概有两种情况:
1.路径错误
2.没有权限
可能跟待删除的文件的路径和当前执行删除操作的用户的权限有关
断点调试下
估计是删除图片的路径找不到!程序调式下,应该会比较清楚。
应该是小问题,不是权限问题就是路径问题,LZ耐心点多调试调试
权限或者路径