2

EnumerateFiles関数を使用しようとしていますが、プログラムを実行しようとすると、次のように表示されます。エラーBC30616:変数'e'は、囲んでいるブロック内の変数を非表示にします。

誰か助けてもらえますか?とても感謝しています!

Imports System.IO

Public Class frmExtractionator

    Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click

        Dim sourceDirectory As String = "F:\CopierFolderforTestDriveCapstone"
        Dim archiveDirectory As String = "F:\FilesExtracted"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory)

            If(Not System.IO.Directory.Exists(archiveDirectory )) Then
                System.IO.Directory.CreateDirectory(archiveDirectory)
            End If

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                File.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch eT As Exception
            Console.WriteLine(eT.Message)
        End Try

    End Sub
End Class
4

1 に答える 1

1

この変更を試してください

理由変数:eが2回使用されている

Catch eT As Exception
    Console.WriteLine(eT .Message)
End Try

eはすでにどこで使用されていますか?

btnStart_Click(ByVal sender As System.Object、ByVal e As System.EventArgs)

更新: あなたの疑問について:

 Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))

ディレクトリではなくファイルを移動しようとしていると思いますか?

代わりに使用 File.Move し、作成することを忘れないでくださいarchiveDirectory

update2: 前にこれをコードに追加しますFor Each

If(Not System.IO.Directory.Exists(archiveDirectory )) Then
    System.IO.Directory.CreateDirectory(archiveDirectory )
End If
于 2013-03-25T00:16:46.017 に答える