2

皆さん、こんばんは。

TextBox1.Textに入力したものからディレクトリに新しいフォルダーを作成し、ダイアログボックスを開いてPDFを選択し、ファイルパスをTextBox2に入れることができるこのコードを作成しようとしています(同じことが当てはまります) TextBox3 の別の PDF の場合)。

An unhandled exception of type 'System.IO.IOException' occurred in Microsoft.VisualBasic.dll

Additional information: Could not complete operation since a directory already exists in this path '\\ANVILSRV\Public\Completed Works Orders\98789'.       

-

これは、操作を完了しようとしたときに発生するエラーです。フォルダーが作成され、ファイルは移動されません。

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click

    Dim txt As String
    txt = TextBox1.Text

    If My.Computer.FileSystem.DirectoryExists("\\ANVILSRV\Public\Completed Works Orders\" & txt & "") Then

        MsgBox("Could not create the folder " & txt & " because it already exists.")

    Else

        My.Computer.FileSystem.CreateDirectory("\\ANVILSRV\Public\Completed Works Orders\" & txt & "")

        My.Computer.FileSystem.MoveFile(TextBox2.Text, ("\\ANVILSRV\Public\Completed Works Orders\" & txt & ""), True)

        My.Computer.FileSystem.MoveFile(TextBox3.Text, ("\\ANVILSRV\Public\Completed Works Orders\" & txt & ""), True)

    End If

End Sub

アドバイスやヘルプをいただければ幸いです。

ありがとう、

スティーブン

4

2 に答える 2

2

ファイルの移動構文には次の引数が必要です

sourceFileName= ソース ファイルへのフル パス

destinationFileName= 宛先ファイルへのフル パス

overWrite= 宛先ファイルが既に存在する場合に上書きするかどうかを指定するブール値

FileSystem.MoveFile(sourceFileName As String, destinationFileName As String, overWrite As Boolean)

コードでは、引数に完全なファイル パスをdestinationFileName指定する代わりに、フォルダー パスを指定しました。コードで完全なファイル名を指定すると、機能します。例えば"C:\Windows\DirectX.txt"

次のコードを試してください

My.Computer.FileSystem.MoveFile(TextBox2.Text, ("\\ANVILSRV\Public\Completed Works Orders\" & txt & "\" & fileName), True)
于 2015-10-13T15:16:36.353 に答える
0

コード内で何度か再利用するパスを定数に変更することをお勧めします。

また、""すべてのパス文字列の最後にある は必要ありません。言いたいことは次のとおりです (簡単なテストを行っただけなので、すべてを含めたわけではありませんが、このことからアイデアを得ることができます。次のコードをテストしたところ、動作しました)。

Const path As String = "\\ANVILSRV\Public\Completed Works Orders\"

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim txt As String
    txt = TextBox1.Text

    If My.Computer.FileSystem.DirectoryExists(path & txt) Then
        MsgBox("Could not create the folder " & txt & " because it already exists.")
    Else
        My.Computer.FileSystem.CreateDirectory(path & txt)
    End If
End Sub
于 2015-10-13T15:23:40.707 に答える