c#删除或覆盖应用程序自身使用的文件

时间:2017-08-05 01:05:08

标签: c#

我使用C#应用程序将路径中的文件作为图像:

Image.FromFile(path);

然后将其显示在我的列表视图中。

我有一个按钮,使用这种方法调用一个方法替换另一个图像在列表视图中选择的图像:

public void Replace(string newImgPath)
{
    if (GetImageFromPath(newImgPath) != null && GetImageFromPath(PathName) != null)
    {
        var Oldimg = GetImageFromPath(PathName);
        var NewImg = GetImageFromPath(newImgPath);

        if (NewImg.Height != Oldimg.Height)
        {
            NewImg = ResizeMe(NewImg, Oldimg.Height, Oldimg.Width);
        }

        if (File.Exists(PathName))
        {
            File.Delete(PathName);
        }

        NewImg.Save(PathName);
    }
}

但我得到一个例外,我无法删除此文件!

1 个答案:

答案 0 :(得分:0)

问题是您的图像处理不当。

我会做类似的事情:

    Image tempImage;
    using(var oldImg = Image.FromFile(PathName))
    {
       tempImage = oldImage;
    }
    if (File.Exists(PathName))
    {
        File.Delete(PathName);
    }