我正在尝试将文件夹中的bmp文件转换为jpg,然后删除旧文件.代码工作正常,但它不能删除bmp.DirectoryInfo di = new DirectoryInfo(args[0]);FileInfo[] files = di.GetFiles(*.bmp);foreach (FileInfo file in fil...
我正在尝试将文件夹中的bmp文件转换为jpg,然后删除旧文件.代码工作正常,但它不能删除bmp.
DirectoryInfo di = new DirectoryInfo(args[0]);
FileInfo[] files = di.GetFiles("*.bmp");
foreach (FileInfo file in files)
{
string newFile = file.FullName.Replace("bmp", "jpg");
Bitmap bm = (Bitmap)Image.FromFile(file.FullName);
bm.Save(newFile, ImageFormat.Jpeg);
}
for (int i = 0; i < files.Length; i++)
files[i].Delete();
这些文件没有被错误指示的其他程序/进程使用,所以我假设问题在这里.但对我来说,代码看起来很好,因为我按顺序执行所有操作.这也是程序的全部内容,因此错误不会由其他地方的代码引起.
解决方法:
尝试使用包裹位图:
using (Bitmap bm = (Bitmap)Image.FromFile(file.FullName))
{
bm.Save(newFile, ImageFormat.Jpeg);
}
这将在保存后立即处理位图对象.
沃梦达教程
本文标题为:C#:为什么我得到“进程无法访问文件*因为正被另一个进程使用”这段代码?
基础教程推荐
猜你喜欢
- winform把Office转成PDF文件 2023-06-14
- C# List实现行转列的通用方案 2022-11-02
- 一个读写csv文件的C#类 2022-11-06
- unity实现动态排行榜 2023-04-27
- C#类和结构详解 2023-05-30
- ZooKeeper的安装及部署教程 2023-01-22
- C#控制台实现飞行棋小游戏 2023-04-22
- C# windows语音识别与朗读实例 2023-04-27
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26
- C# 调用WebService的方法 2023-03-09