C# 3.0 如何在应用程序运行时删除文件

C# 3.0 如何在应用程序运行时删除文件,c#-3.0,C# 3.0,我开发了一个C#应用程序,在该应用程序中,用户为每条记录选择一张照片。但是,用户也应该能够用新的照片更改预先选择的照片。当用户更改照片时,应用程序首先从应用程序目录中删除旧照片,然后复制新照片,但当用户更改照片时,应用程序会出现异常,因为应用程序正在使用该文件,因此在应用程序运行时无法删除该文件。有人知道怎么解决这个问题吗我感谢你的帮助 这是个例外 进程无法访问该文件 'D:\我的 项目\Hawkar的项目\Software\Application\bin\Debug\Photos\John 因

我开发了一个C#应用程序,在该应用程序中,用户为每条记录选择一张照片。但是,用户也应该能够用新的照片更改预先选择的照片。当用户更改照片时,应用程序首先从应用程序目录中删除旧照片,然后复制新照片,但当用户更改照片时,应用程序会出现异常,因为应用程序正在使用该文件,因此在应用程序运行时无法删除该文件。有人知道怎么解决这个问题吗我感谢你的帮助

这是个例外

进程无法访问该文件 'D:\我的 项目\Hawkar的项目\Software\Application\bin\Debug\Photos\John 因为它正被 另一个过程


首先,你的代码不好。 仅当当前没有图像(else)时,才会复制新图像。 但是,如果存在旧图像,则只删除此图像,而不会复制较新的图像(如果有)

代码最好如下所示:

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

File.Copy(fileSource, fileDest);
imageIDTextBox.Text = fileDest;

这段代码应该可以工作,但是如果您得到一个文件已经在使用的异常,您应该检查您使用该文件的“位置”。可能您正在程序开始时读取该文件。如果有一些句柄打开,请检查您访问这些用户文件的程序的所有部分。

非常感谢您的帮助,并为我刚才看到的代码中的错误感到抱歉,我的原始代码与您编写的一样,但我不知道可能是什么时候无意中发布的,我把它放在了这样的位置。当应用程序运行时,会有一个picturebox,其中显示了每条记录的图像,这就是为什么当我想更改图片时,应用程序会给出一个异常,因为picturebox已经使用过一次图片,但是在删除原始图片之前,我也尝试将另一张图片加载到图片框中,但仍然相同。我已经修改了上面的内容,如果你想查看它的话,我可以修改一下。

“嗨,先生们”-可能不仅有男性在观看>;-)
if (File.Exists(fileDest))
{
    File.Delete(fileDest);
}

File.Copy(fileSource, fileDest);
imageIDTextBox.Text = fileDest;