0
我已经看到这个回答多次,我想我知道问题是什么,但在我的情况下,解决方案对我来说没有意义。在mscorlib.dll中发生未处理的异常类型'System.IO.IOException'
我收到以下错误:
An unhandled exception of type 'System.IO.IOException' occurred in mscorlib.dll
Additional information: The process cannot access the file 'C:\Users\llexl\Desktop\Test\Encrypted String.txt' because it is being used by another process.
我分开的代码的两个部分到他们自己的按钮来解决,这是负责创建文件的第一部分工作得很好,但在第二部分负责编辑文件并重命名它们的代码是当发生这种错误时对我来说没有意义,因为我知道System.IO.File.Create
应该不需要关闭。
反正这里是多数民众赞成给我的麻烦代码:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
TextBox2.Text = FolderBrowserDialog1.SelectedPath
TextBox2.AppendText("\Encrypted String.txt")
System.IO.File.Create(TextBox2.Text)
TextBox3.Text = FolderBrowserDialog1.SelectedPath
TextBox3.AppendText("\masterkey.txt")
System.IO.File.Create(TextBox3.Text)
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim file As System.IO.StreamWriter
Dim file2 As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter(TextBox2.Text, True)
file.Write(RichTextBox1.Text)
file.Close()
file2 = My.Computer.FileSystem.OpenTextFileWriter(TextBox3.Text, True)
file2.Write(TextBox1.Text)
file2.Close()
My.Computer.FileSystem.RenameFile(TextBox3.Text, "masterkey.perlpron")
My.Computer.FileSystem.RenameFile(TextBox2.Text, "Encrypted String.perlpron")
MsgBox("Library ready", MsgBoxStyle.Information)
End Sub
我会很感激一些帮助:)
我想补充一个.Dispose()来创建句子,只是以... _System.IO.File.Create(TextBox2.Text).Dispose()_ –
那么,你可能知道你的程序行为方式至少有20%是错误的。您可以通过查看MSDN中的File.Create文档来使其达到100%。它是一个函数,其独特之处在于它的返回值必须从不被忽略。这不仅是缺陷,它也是一个非常糟糕的做法。如果您的程序在完成写入文件之前因任何原因而结束,那么您刚刚离开了地雷,准备在任何期望该文件包含* something *的毫无预期的程序中爆炸。不清楚你为什么要这样做,只有合理的选择是File.Delete。 –