如何获取具有特定扩展名的所有文件,而不会导致 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
 }