【发布时间】:2014-09-12 13:23:43
【问题描述】:
我有一个文件夹 G:\Images 允许我通过 c# 从上传页面插入图像,当我从文件夹中删除图像时出现问题,出现以下错误。
System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.IO.File.InternalDelete(String path, Boolean checkHost)
如果用户想要更新他们的个人资料图片,他们上传图片,然后我检查数据库中的旧图片,然后使用下面的代码从文件夹中删除它,然后再添加新的图片 ID。
但是如果我上传新图片然后在错误发生后再次上传图片。
我的代码是
if (System.IO.File.Exists(@"G:\\Images\\" + string.Format("{0}.png", OldProfileImage)))
{
try
{
System.IO.File.Delete(@"G:\\Images\\" + string.Format("{0}.png", OldProfileImage));
}
catch(Exception e)
{
logger.Error(string.Format("Delete file error Exception is {0} {1}", e.Source.ToString(), e.StackTrace.ToString()));
}
}
------------------------根据要求更改了 e.tostring()----------------
错误是:System.UnauthorizedAccessException:访问路径 'G:\Images\5bb188f0-2508-4cbd-b83d-9a5fe5914a1b.png' 被拒绝。在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.IO.File.InternalDelete(String path, Boolean checkHost)
但如上所述,我可以插入、删除,但如果我再插入,则在发生错误后直接删除。
【问题讨论】:
-
登录
e.ToString()让 .net 告诉你出了什么问题 -
或者更好的是:不要捕获任何异常!
-
如果您必须使用它来查看错误,请尝试记录 e.Message 和 e.StackTrace。
-
@George,您的问题需要清理一下,您的语言结构非常混乱。这句话毫无意义:“我可以添加一个文件然后删除它,但是当我尝试在错误发生后立即添加另一个文件时,但我不知道如何关闭它。”。编辑您的问题,以便更准确地描述正在发生的事情。
-
如果您正在创建文件,您是否正确清理了用于创建它的任何内容(例如关闭/处置)?如果文件仍处于打开状态以进行写入,则似乎可能会导致一些问题。
标签: c#