.net 如果直接在FileInfo.Create()之后调用,为什么FileInfo.OpenWrite()会抛出异常?

.net 如果直接在FileInfo.Create()之后调用,为什么FileInfo.OpenWrite()会抛出异常?,.net,file-io,.net,File Io,我从MSDN中直接举了一个例子。我想创建一个文件并立即写入。我希望使用FileInfo对象。因此,我创建了一个新的FileInfo对象,调用create,然后打开一个FileStream。当我试图打开文件流时,我得到一个异常,告诉我另一个进程正在使用该文件。(是我) 我直接复制粘贴了MSDN示例,他们的代码也有同样的问题。我/他们做错了什么?(P.S.净额3.5) 更新:下面的代码直接来自 如果您试图打开一个已打开并锁定的文件,则需要在创建后调用fi.Close(),如果您打算将其作为fi重新使

我从MSDN中直接举了一个例子。我想创建一个文件并立即写入。我希望使用FileInfo对象。因此,我创建了一个新的FileInfo对象,调用create,然后打开一个FileStream。当我试图打开文件流时,我得到一个异常,告诉我另一个进程正在使用该文件。(是我)

我直接复制粘贴了MSDN示例,他们的代码也有同样的问题。我/他们做错了什么?(P.S.净额3.5)

更新:下面的代码直接来自


如果您试图打开一个已打开并锁定的文件,则需要在创建后调用fi.Close(),如果您打算将其作为fi重新使用。create()打开一个文件流,允许您自动读/写该文件。我相信在默认情况下,Create()只会使用一个已经存在的文件,所以您可以使用它来初始化文件流

比如说

// Create a reference to a file.
FileInfo fi = new FileInfo("temp.txt");
// Actually create the file.
FileStream fs = fi.Create();
// Modify the file as required, and then close the file.
fs.Close();
// Delete the file.
fi.Delete();

FileInfo上没有关闭方法。所以我认为不是。这也是微软的例子。啊,我现在明白了。非常感谢你。就这样:)
// Create a reference to a file.
FileInfo fi = new FileInfo("temp.txt");
// Actually create the file.
FileStream fs = fi.Create();
// Modify the file as required, and then close the file.
fs.Close();
// Delete the file.
fi.Delete();