我在我的应用程序中使用删除图片进行了疑难解答,我使用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.
请帮帮我!
答案 0 :(得分:1)
请参阅此回答https://stackoverflow.com/a/1025446/988830
该文件由另一个进程使用,您必须确保持有该文件的进程已释放它。如果它不在您的控制之下,那么您需要尝试使用catch块来避免异常,并且您不能做更多的事情。
try
{
//Delete file
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
答案 1 :(得分:0)