2012-12-20 35 views
0

調試時出現以下錯誤。如何在Visual Basic 2010中移動或替換文件或文件夾?

未處理的異常已經發生

無法完成操作,因爲文件已經在這條道路存在「C:\ 32位\ abc.dll」

我怎樣才能解決這個問題?

Imports System 
Imports System.IO 

Public Class Form1 

    Private Sub ReactorButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ReactorButton1.Click 
     If ReactorComboBox1.SelectedItem = "Some Program" Then 
      My.Computer.Network.DownloadFile _ 
       ("http://somesite/test/abc.dll", _ 
       "C:\32bit\abc.dll", True, 500) 
       System.IO.File.Move("C:\32bit\abc.dll" "C:\Program Files\Some Program\abc.dll") 

      My.Computer.Network.DownloadFile _ 
       ("http://www.somerandomsite/test1/abcd _ 
       "C:\64bit\abcd.dll", True, 500) 
       System.IO.File.Move("C:\64bit\abcd.dll… "C:\Program File (x86)\Some Other Program\abcd.dll") 
     End If 
    End Sub 

我也試過

Try 
    Catch ex As Exception 
     System.IO.File.Delete("C:\32bit\abc.dll") 
    End Try 
    Try 

    Catch ex As Exception 
     My.Computer.Network.DownloadFile _ 
      ("http://somesite.com/folder/32bit/abc.dll", _ 
      "C:\32bit\abc.dll", True, 500) 
    End Try 
    System.IO.File.Copy("C:\32bit\abc.dll", "C:\Program Files (x86)\A Program\Sub Folder\abc.dll") 

但我仍然得到同樣的未處理的異常錯誤。

+0

你的移動方法看起來很奇怪。這兩個文件名之間不應該有逗號? (即System.IO.File.Move(「C:\ 32bit \ abc.dll」**,**「C:\ Program Files \ Some Program \ abc.dll」) –

回答

0

這是因爲文件存在。你需要刪除它之前下載(您的版本刪除是在錯誤的地方,應在嘗試,而不是Catch)

檢查My.Computer.Network.DownloadFile Method。你可以有一個覆蓋標誌DownloadFile

覆蓋設置爲False和目標文件已經存在(IOException異常)。

0

評論My.Computer.Network.DownloadFile Method(MSDN)。

僅供參考,在catch塊中運行代碼是不好的編碼習慣。 catch塊通常意味着真正捕捉到錯誤。

您可能會遇到的問題是,您正試圖在文件完全下載之前移動該文件,因此您將收到異常。

相關問題