我正在使用System.IO.File.Create来创建一个文件.我不是用流编写器写它,只是创建它.
当应用程序尝试打开新创建的文件时,前端出现服务器错误 - 该文件正在使用中.然后垃圾收集似乎出现,几分钟后一切都还可以.
现在我知道如果我使用Streamwriter,我将不得不关闭它.这同样适用于创作吗?
我已经读过打开一个流编写器到文件然后立即关闭它将解决这个问题,但它似乎很乱.有更简单的方法吗?
小智 102
试试这个:
System.IO.File.Create(FullFName).Close();
Run Code Online (Sandbox Code Playgroud)
Edw*_*ing 74
File.Create
返回一个FileStream
.你应该像这样使用它:
using (FileStream fs = File.Create(path))
{
//you can use the filstream here to put stuff in the file if you want to
}
Run Code Online (Sandbox Code Playgroud)
Ode*_*ded 12
创建文件打开FileStream
它,因此,锁定它(File.Create
返回FileStream
).
您必须关闭此流才能访问该文件.最好用using
声明来完成:
using(FileStream fs = File.Create(path))
{
}
Run Code Online (Sandbox Code Playgroud)
使用时,File.Create
您将获得FileStream
退货.在您关闭流或直到FileStream
对象被处置(由垃圾收集器的终结者)之前,它将保持打开并锁定.
FileStream
实现,IDisposable
以便您可以执行以下操作:
using(FileStream fs = File.Create(filename))
{
// Do stuff like write to the file
}
Run Code Online (Sandbox Code Playgroud)
该using
语句是"语法糖",并使编译器生成功能上等同于的代码:
FileStream fs = File.Create(filename)
try
{
// Do stuff like write to the file
}
finally
{
fs.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
该Dispose
方法在Close
内部调用.
归档时间: |
|
查看次数: |
45027 次 |
最近记录: |