删除我的应用程序文件夹中的照

时间:2012-05-12 02:21:22

标签: c# wpf

我在我的应用程序中使用删除图片进行了疑难解答,我使用foreach删除了文件夹中的文件。

我在我的应用程序中使用Headless skype登录查询联系人姓名和联系人的照片登录成功后,但是当我关闭我的应用程序时遇到问题,我想删除我应用程序文件夹中的所有联系人照片。查看要删除的代码:< / p>

var assemblyLocation = Assembly.GetExecutingAssembly().Location;
var applicationDirectory = System.IO.Path.GetDirectoryName(assemblyLocation);
var imagesDirectory = System.IO.Path.Combine(applicationDirectory, "img");
var contact_photo = Directory.EnumerateFiles(imagesDirectory,
    "*.jpg",SearchOption.TopDirectoryOnly);
if (contact_photo != null)
{
   foreach (var photo in contact_photo)
   {
      Console.WriteLine(photo);

      File.Delete(photo);
   }

}

错误消息:

The process cannot access the file 'C:\Users\...\mypicture.jpg'
because it is being used by another process.

请帮帮我!

2 个答案:

答案 0 :(得分:1)

请参阅此回答https://stackoverflow.com/a/1025446/988830

该文件由另一个进程使用,您必须确保持有该文件的进程已释放它。如果它不在您的控制之下,那么您需要尝试使用catch块来避免异常,并且您不能做更多的事情。

try
{
    //Delete file
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message.ToString());
}

答案 1 :(得分:0)

在删除图像之前,您是否检查了这些图像的使用情况?

当您不注意时,WPF应用程序的其他部分可能会将其锁定,

BitmapImage in WPF does lock file