我做了这个小程序来演示我的问题。它创建文件,然后尝试在同一地址打开它。尝试打开文件时,将抛出路径上的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);
}
}
}
答案 0 :(得分:1)
您可以在文档中查看问题。
虽然你的例子毫无意义,但这是对问题的解释。
Create.File(string)
返回FileStream
,其中包含称为文件句柄的非托管资源,因此您无法创建另一个应该具有相同句柄的FileStream
。
好的,你应该在重用之后释放资源。
这是一个简单的概念:
using(File.Create(address))
{}
using(FileStream file = File.Open(address, FileMode.Open)
{
}