C#文件访问错误

C#文件访问错误,c#,ftp,file-access,C#,Ftp,File Access,我有以下C#代码: 当代码试图运行ftp.upload时,我遇到了这个错误。我知道错误的意思,但我不知道如何关闭打开文件的句柄。因为您正在调用Image Image=Image.FromFile(selectedFile) 如果查看文档,您将看到以下字符串: 在释放图像之前,文件将保持锁定状态 这意味着,根据提供的代码,即使在上传完成后,也可以初始化映像 ftp.upload("NAME_OF_THE_FILE_RECOVERED_FROM_FILE_ITSELF", selectedFile,

我有以下C#代码:


当代码试图运行
ftp.upload
时,我遇到了这个错误。我知道错误的意思,但我不知道如何关闭打开文件的句柄。

因为您正在调用
Image Image=Image.FromFile(selectedFile)

如果查看文档,您将看到以下字符串:

在释放图像之前,文件将保持锁定状态

这意味着,根据提供的代码,即使在上传完成后,也可以初始化映像

ftp.upload("NAME_OF_THE_FILE_RECOVERED_FROM_FILE_ITSELF", selectedFile, directory);

Image image = Image.FromFile(selectedFile);

通过使用
image.FromFile
包装,尝试
处理
图像对象:

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);

为什么要首先打开它?该文件是OpenFileDialog的结果。我没有明确地打开它。太好了。现在正在工作。谢谢。我没有想到那句台词。很抱歉你能给我一个关于如何上传另一个线程的图像的想法吗?在上传完成之前,表单一直保持冻结状态,这不好。我应该使用“使用”。谢谢你的例子。我将相应地更改代码。
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);