从文件夹中删除文件会引发错误

时间:2014-09-12 13:23:44

标签: c#

我有一个文件夹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)

但如上所述,我可以插入,删除,但如果我然后插入,则在发生错误后直接删除。

2 个答案:

答案 0 :(得分:0)

试试这个:

    string file = @"G:\\Images\\" + string.Format("{0}.png", OldProfileImage);
    System.IO.File.SetAttributes(file, FileAttributes.Normal);
    System.IO.File.Delete(file);

答案 1 :(得分:0)

我有一个类似的问题。 我的是一个控制台应用程序。 在我的本地计算机上,它工作正常,但是当我放入服务器时,它在System.IO.File.Delete(file);

上给了我这个错误

为了澄清,我的帐户具有删除权限。我可以手动删除文件。

稍后,我使用选项“ 以管理员身份运行”运行程序,它解决了该问题。