按名称关闭文件

时间:2019-01-13 11:51:32

标签: c# file handle

在C#中,我的代码间接访问文件。访问的文件超出范围后,文件保持打开状态很长时间。我无法直接关闭文件,因为我没有文件流。

查询:我怎么做: 获取文件句柄,我的代码已间接打开,以便可以关闭它? 告诉我的代码,该关闭文件了。 (类似于file.dispose()或file.close(),但我没有文件对象开头。)

这不是“我的代码不起作用”的问题。它不是专门针对位图的。阅读问题。我想知道执行以上要求的任何一种方法的一般答案。停止将您的解释投射到问题上,而专注于实际存在的问题。

1 个答案:

答案 0 :(得分:1)

为什么不简单地使用using语句?在其中,您可以将加载的文件分配给一个变量,然后Dispose方法(自动调用)将卸载原始文件,从而对其进行解锁...例如,如果您仍要像上一个问题一样加载位图文件:

private Bitmap LoadBitmap(string fileName)
{
    using (var bitmap = new Bitmap(fileName))
    {
        return new Bitmap(bitmap);
    }
}

这是暂时锁定文件,将其加载到内存中,以Bitmap的身份返回,然后再次解锁文件。 当然,您仍然需要进行一些null检查,但是您知道了。