C#以隔离方式创建和打开文件会抛出IOException

时间:2016-01-24 16:00:40

标签: c# filestream

我做了这个小程序来演示我的问题。它创建文件,然后尝试在同一地址打开它。尝试打开文件时,将抛出路径上的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);
    }
}
}

1 个答案:

答案 0 :(得分:1)

您可以在文档中查看问题。

虽然你的例子毫无意义,但这是对问题的解释。

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

好的,你应该在重用之后释放资源。

这是一个简单的概念:

using(File.Create(address))
{}

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