如何在Visual Basic 2010中移动或替换文件或文件夹?

时间:2012-12-20 23:08:37

标签: vb.net vb.net-2010

调试时出现以下错误。

  

发生了未处理的异常

     

无法完成操作,因为此路径中已存在文件“C:\ 32bit \ 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")

但我仍然得到同样的未处理异常错误。

2 个答案:

答案 0 :(得分:0)

这是因为文件存在。您需要在下载之前将其删除(您的版本删除位置错误,应该在Try中,而不是Catch)

检查 My.Computer.Network.DownloadFile Method 。您可以在DownloadFile中使用覆盖标记:

  

覆盖设置为False,目标文件已存在(IOException)。

答案 1 :(得分:0)

查看 My.Computer.Network.DownloadFile Method (MSDN)。

仅供参考,在catch块中运行代码是不好的编码习惯。 catch块通常意味着真正捕捉到这一点。

您可能遇到的问题是您尝试在文件完全下载之前移动文件,因此您将获得例外。