C# 在隔离中创建和打开文件会引发 IOException

本文关键字:文件 IOException 隔离 创建 | 更新日期: 2023-09-27 18:31:36

我做了这个小程序来演示我的问题。 它创建文件,然后尝试在同一地址打开它。路径上的 IOException 共享冲突在尝试打开文件时引发。为什么会这样?我可以看到正在创建该文件。

using System;
using System.IO;
namespace FileTestProject
{
class MainClass
{
    private static string address = "/Users/jamessullivan/Desktop/testFile.dat";
    public static void Main ()
    {
        File.Create(address);
        FileStream file = File.Open(address, FileMode.Open);
    }
}
}

C# 在隔离中创建和打开文件会引发 IOException

您可以看到查看文档的问题。

虽然你的例子毫无意义,但这里有一个问题的解释。

Create.File(string)返回FileStream,其中包含称为文件句柄的非托管资源,因此您无法创建另一个应保存相同句柄的FileStream

因此,您应该在重用资源后释放资源。

这是一个简单的结论:

using(File.Create(address))
{}
using(FileStream file = File.Open(address, FileMode.Open)
{
}