0

デバッグすると、次のエラーが発生します。

未処理の例外が発生しました

このパス「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")

しかし、それでも同じ未処理の例外エラーが発生します。

4

2 に答える 2

0

My.Computer.Network.DownloadFileメソッド(MSDN) を確認してください。

catch参考までに、ブロック内でコードを実行するのは悪いコーディング方法です。catchブロックは通常、実行を真にキャッチすることを目的としています。

実行している可能性のある問題は、ファイルが完全にダウンロードされる前にファイルを移動しようとしているため、例外が発生していることです。

于 2012-12-20T23:25:20.087 に答える
0

ファイルが存在するためです。ダウンロードする前に削除する必要があります (バージョンの削除は間違った場所にあり、Catch ではなく Try にある必要があります)

My.Computer.Network.DownloadFile Methodを確認してください。で上書きフラグを設定できますDownloadFile

overwriteが False に設定されており、宛先ファイルが既に存在します (IOException)。

于 2012-12-20T23:17:44.667 に答える