好的,所以我的程序檢查看到的是一個文本文件存在(這工作),那麼如果它不存在它創建目錄和文件,以及將數據保存到文件。當它落入第二個測試語句以創建文本文件時,我收到錯誤。 該程序將創建目錄和文件,但無法寫入它。 「unhandeled exception:文件正在被另一個進程使用,如果我點擊忽略錯誤並運行程序,我可以再次單擊保存按鈕並且它可以正常工作延遲創建文件時使用代碼?
所以我想我的問題是,我可以以某種方式延緩寫入到文件足夠長的其他操作完成,或是否有更好的方法來組織它的代碼,所以它不是一個問題
相關代碼:
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
'create necessary directory
'create text file
'if file exist write to file
If My.Computer.FileSystem.FileExists("C:\Documents and Settings\All Users\Documents\NailPolishSelector\polishColors.txt") = True Then
MsgBox("Data Saved")
Using sr As New IO.StreamWriter("C:\Documents and Settings\All Users\Documents\NailPolishSelector\polishColors.txt")
For Each line In lstColors.Items
sr.WriteLine(line)
Next
sr.Close()
End Using
ElseIf My.Computer.FileSystem.FileExists("C:\Documents and Settings\All Users\Documents\NailPolishSelector\polishColors.txt") = False Then
My.Computer.FileSystem.CreateDirectory("C:\Documents and Settings\All Users\Documents\NailPolishSelector")
Dim fs As FileStream = File.Create("C:\Documents and Settings\All Users\Documents\NailPolishSelector\polishColors.txt")
'error occurs here
Using srr As New IO.StreamWriter("C:\Documents and Settings\All Users\Documents\NailPolishSelector\polishColors.txt")
For Each line In lstColors.Items
srr.WriteLine(line)
Next
srr.Close()
End Using
MsgBox("File Created")
End If
End Sub
你能解釋downvote嗎?我不明白我的問題有什麼問題。我搜索並沒有發現類似的東西。 – Aaron 2014-11-05 20:48:15
我本來會問同樣的問題。 – logixologist 2014-11-05 20:49:11
取出'File.Create'。 StreamWriter將創建文件; 'File.Create'給你一個它創建的文件的句柄,但你不需要它。另外,使用'If = True'不是必須的,我建議你刪除'= True'部分以使其更具可讀性,並且使用'Not'而不是'= False'。 –
2014-11-05 20:49:42