C#文件访问错误
本文关键字:错误 访问 文件 | 更新日期: 2023-09-27 18:08:30
我有以下C#代码:
string selectedFile = "D:'..'IMGP2695.JPG";
MyImage myImage = new MyImage();
Image image = Image.FromFile(selectedFile);
string thumbnail_name = CreateThumbnail(image);
myImage.height = image.Height + "px";
myImage.width = image.Width + "px";
ftp.upload(myImage.internalName, selectedFile, directory);
The process cannot access the file `'D:'..'IMGP2695.JPG'` because it is being used by another process.
当代码尝试运行ftp.upload
时,我得到了这个错误。我知道这个错误意味着什么,但我不知道如何关闭打开文件的句柄。
尝试通过用using
:包装Image.FromFile
来dispose
图像对象
string selectedFile = "D:'..'IMGP2695.JPG";
MyImage myImage = new MyImage();
string thumbnail_name = string.empty;
using(Image image = Image.FromFile(selectedFile)){
thumbnail_name = CreateThumbnail(image);
myImage.height = image.Height + "px";
myImage.width = image.Width + "px";
}
ftp.upload(myImage.internalName, selectedFile, directory);
因为您在上传之前调用了Image image = Image.FromFile(selectedFile);
,出于某种原因。
如果你查看Image.FromFile文档,你会看到以下字符串:
在释放图像之前,文件一直处于锁定状态。
这意味着,根据提供的代码,您甚至可以在上传完成后初始化Image。
ftp.upload("NAME_OF_THE_FILE_RECOVERED_FROM_FILE_ITSELF", selectedFile, directory);
Image image = Image.FromFile(selectedFile);