求助,FileUpload控件上传的文件,有些变成只读,不能删除。
上传文件的代码如下:
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
FileUpload2.SaveAs(file);
即,上传文件之前建一个文件夹,然后把文件保存到那个文件夹下。
删除文件的代码如下:
FileInfo fileInfo = new FileInfo(Server.MapPath("~/Upload") + "\\" + Session["ProjID"].ToString() + "\\" + Label2.Text);
if (fileInfo.Exists)
{
fileInfo.Delete();
}
保存文件的路径、文件夹的路径都没有问题,上传也能成功,有时候刚刚上传完删除可以成功,但是好像过一段时间再登录这个系统,再删除就不行了。vs2010给的错误提示包括“确保文件不是只读”。我就去upload文件夹下查找文件,发现文件的确是只读的。刚上传的文件有时候不是只读的,就可以成功删除。
困扰我很久了,我是asp.net新手,希望高手赐教啊~谢谢~
------解决方案--------------------
我也碰到了这个问题,目前我的解决方法是如果文件存在那么就重命名来解决我的需求的!然后你的这个只读属性,用去除只读属性吧!
// 先把文件的属性读取出来
FileAttributes attrs = File.GetAttributes("c:\\a.txt");
// 下面表达式中的 1 是 FileAttributes.ReadOnly 的值
// 此表达式是把 ReadOnly 所在的位改成 0,
attrs = (FileAttributes)((int)attrs & ~(1));
File.SetAttributes("c:\\a.txt", attrs);