Vb.net 使用相同的文件错误
点击一个按钮,我有以下代码来写我的文本框中的内容Vb.net 使用相同的文件错误,vb.net,Vb.net,点击一个按钮,我有以下代码来写我的文本框中的内容 Dim file As System.IO.StreamWriter file = My.Computer.FileSystem.OpenTextFileWriter("C:/Users/Nick/Documents/Dra.txt", False) file.WriteLine(NameBasic) file.WriteLine(LastBasic) file.WriteLine(PhoneBasic)
Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter("C:/Users/Nick/Documents/Dra.txt", False)
file.WriteLine(NameBasic)
file.WriteLine(LastBasic)
file.WriteLine(PhoneBasic)
file.WriteLine(NameEmer1)
在我的表单加载中,我加载了记事本中所写的内容,这表示它已经被使用(文件),这是真的,我怎么能有两个不同的函数(写入和读取)来处理同一个文件而不出现此错误
The process cannot access the file 'C:\Users\Nick\Documents\Dra.txt' because it is being used by another process.
这是我的onformload
Dim read As System.IO.StreamReader
read = My.Computer.FileSystem.OpenTextFileReader("C:/Users/Nick/Documents/Dra.txt")
lblNameBasic.Text = read.ReadLine
我有点被这个问题卡住了,谢谢你,你需要在写完文件后关闭它
Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter("C:/Users/Nick/Documents/Dra.txt", False)
file.WriteLine(NameBasic)
file.WriteLine(LastBasic)
file.WriteLine(PhoneBasic)
file.WriteLine(NameEmer1)
file.Close()
回答你的问题: 如何让两个不同的函数(写入和读取)操作同一个文件而不出现此错误
The process cannot access the file 'C:\Users\Nick\Documents\Dra.txt' because it is being used by another process.
如果您真的想从两个进程同时读写同一个文件,则需要。My.Computer.FileSystem
方法不这样做。ª
然而,我怀疑你真的不想这么做。我怀疑你想写作,写完之后,你想阅读。在这种情况下,只需在使用文件后关闭它就足够了。最简单的方法是使用Using
语句:
Using file = My.Computer.FileSystem.OpenTextFileWriter(...)
file.WriteLine(...)
file.WriteLine(...)
...
End Using
这可确保在Using
块离开后(通过正常执行或异常),文件将立即正确关闭。事实上,将其类实现了IDisposable
(例如StreamWriter
)的每个对象的使用封装在Using
语句中是一种很好的做法
根据,
OpenTextFileWriter
创建了一个新的IO.StreamWriter(文件、附加、编码)
,这反过来又创建了一个新的文件流(…,FileShare.Read)
,很抱歉,我确实忘记了把它包含在StreamReader中,不过我忘了把它添加到StreamReader上!那么,将read.Close()添加到StreamReader是否解决了这个问题呢