Ger*_*ton 3 .net locking filewriter
我正在使用CreateText方法在"App1"中创建一个空文件(如下所示).然后尝试让另一个应用程序写入该文件,但它失败了b/c它被锁定了.直到我关闭"App1"才解锁
File.CreateText(path)
Run Code Online (Sandbox Code Playgroud)
要解决这个问题,我可以这样做:
Dim sw As StreamWriter = File.CreateText(path)
sw.Close()
Run Code Online (Sandbox Code Playgroud)
为什么只调用CreateText锁定文件?是否有一些隐含的编写器或文件编写器或正在创建的东西?
TEP
是的,它确实. CreateText()返回一个StreamWriter对象,该对象对您指定的文件是开放的.
如果你只是忽略了返回值,那就会StreamWriter挂起,保留你的文件.你真的需要在第二块代码中处理它.
是否有一些隐含的编写器或文件编写器或正在创建的东西?
创建StreamWriter,如您自己的代码所示.这就是为什么你可以将返回值赋给StreamWriter类型的变量.
这是我知道创建空文件的最简单方法:
File.CreateText(path).Close()
Run Code Online (Sandbox Code Playgroud)
编辑:
经过测试并确认可行.