好了,所以我想不通为什么我不能写入文件。 它说,它正在由另一个进程使用。 这里的错误(IOException异常是未处理的):
The process cannot access the file 'C:\Temp\TempFile.cfg' because it is being used by another process.
下面是我使用写入文件的当前代码:
Dim myConfig
Dim saveFileDialog1 As New SaveFileDialog()
saveFileDialog1.Filter = "Configuration Files (*.cfg)|*.cfg"
saveFileDialog1.FilterIndex = 2
saveFileDialog1.RestoreDirectory = True
If saveFileDialog1.ShowDialog() = DialogResult.OK Then
myConfig = saveFileDialog1.OpenFile()
If (myConfig IsNot Nothing) Then
System.IO.File.WriteAllText(saveFileDialog1.FileName, TextBox1_Output_Module.Text & vbCrLf & TextBox2_Output_Module.Text & vbCrLf & TextBox3_Output_Module.Text)
myConfig.Close()
End If
End If
我不知道我失踪,因为我以为我这个昨天测试和它的工作。
我想这是保持文件打开的过程是你自己的过程。
当你调用saveDialog1.OpenFile(),你打开的文件,并返回一个流。
然后你打电话,试图再次打开导致上述异常的同一个文件WriteAllText()。
你能解决简单地删除调用的OpenFile()
If saveFileDialog1.ShowDialog() = DialogResult.OK Then
File.WriteAllText(saveFileDialog1.FileName, TextBox1_Output_Module.Text & vbCrLf & TextBox2_Output_Module.Text & vbCrLf & TextBox3_Output_Module.Text)
End If
只要记住,WriteAllText()创建一个新的文件,指定的字符串写入文件,然后关闭该文件。 如果目标文件已经存在 ,它被覆盖。
那么这里是我落得这样做,似乎是工作就好了原样。 我拿出if条件,离开一切不变。 我可以随时代号为取消以后。
Dim myConfig
Dim saveFileDialog1 As New SaveFileDialog()
saveFileDialog1.Filter = "Configuration Files (*.cfg)|*.cfg"
saveFileDialog1.FilterIndex = 2
saveFileDialog1.RestoreDirectory = True
System.IO.File.WriteAllText(saveFileDialog1.FileName, TextBox1_Output_Module.Text & vbCrLf & TextBox2_Output_Module.Text & vbCrLf & TextBox3_Output_Module.Text)
此代码确定/取消按钮。
If saveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
System.IO.File.WriteAllText(saveFileDialog1.FileName, TextBox1_Output_Module.Text & vbCrLf & TextBox2_Output_Module.Text & vbCrLf & TextBox3_Output_Module.Text)
End If