如何获取具有特定扩展名的所有文件,而不会导致 IOException 告诉我我要访问的文件仍在使用中
How can I get all Files with a certain extension, without causing an IOException that tells me that the File I want to access is still in use
我创建了一个文件夹,我们将其命名为Input
。在那里我有一个 Input.png
和一个 plugin.json
。现在我需要获取图像,以便将其放入 Class Module
.
的对象中
我只有整个文件夹的动态路径,用户可以决定,把那个文件夹放在哪里。文件夹名称也是可变的。图片本身有它所在文件夹的名称。所以我不能只说
string image = path.Replace("C://Test//", "") + "Input.png";
我认为获取图片的最佳方法是查看我当前所在的文件夹,将每个以 .png
结尾的文件存储在字符串数组中,然后只使用第一个索引,因为那里该文件夹中将只有一个 .png。
最后我想删除那个文件夹,这就是我得到 IOException 的地方。
所以我尝试了这个:
using (string[] imageFiles = Directory.GetFiles(path, "*.png"))
{
module.ModuleImage = Image.FromFile(imageFiles[0]);
}
但这告诉我我不能那样做,因为 string[] 不是一次性的。
当我不需要 png 文件时,如何关闭它,以便删除文件夹?
你的 using 块引用了错误的东西
Image class 实现 IDisposable
https://docs.microsoft.com/en-us/dotnet/api/system.drawing.image?view=netframework-4.8
string[] imageFiles = Directory.GetFiles(path, "*.png")
using (module.ModuleImage = Image.FromFile(imageFiles[0]))
{
// do your checks
}
我创建了一个文件夹,我们将其命名为Input
。在那里我有一个 Input.png
和一个 plugin.json
。现在我需要获取图像,以便将其放入 Class Module
.
我只有整个文件夹的动态路径,用户可以决定,把那个文件夹放在哪里。文件夹名称也是可变的。图片本身有它所在文件夹的名称。所以我不能只说
string image = path.Replace("C://Test//", "") + "Input.png";
我认为获取图片的最佳方法是查看我当前所在的文件夹,将每个以 .png
结尾的文件存储在字符串数组中,然后只使用第一个索引,因为那里该文件夹中将只有一个 .png。
最后我想删除那个文件夹,这就是我得到 IOException 的地方。 所以我尝试了这个:
using (string[] imageFiles = Directory.GetFiles(path, "*.png"))
{
module.ModuleImage = Image.FromFile(imageFiles[0]);
}
但这告诉我我不能那样做,因为 string[] 不是一次性的。
当我不需要 png 文件时,如何关闭它,以便删除文件夹?
你的 using 块引用了错误的东西
Image class 实现 IDisposable https://docs.microsoft.com/en-us/dotnet/api/system.drawing.image?view=netframework-4.8
string[] imageFiles = Directory.GetFiles(path, "*.png")
using (module.ModuleImage = Image.FromFile(imageFiles[0]))
{
// do your checks
}