2013-03-25 40 views
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 

回答

1

試試這個變化

原因變量:E用於兩次

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

Ë已經使用?

btnStart_Click(BYVAL發件人爲System.Object的,BYVAL ē作爲 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 
+0

給你的代碼添加嘿謝謝你是對的!只是想知道,每次我點擊按鈕來提取文件,並把它們放在一個新的文件夾它不起作用? – 2013-03-25 00:20:51

+0

是的,我是新的大聲笑,但我會接受你的答案。我真的想把一個文件夾裏面的文件移動到正確的位置 – 2013-03-25 00:27:31

+0

使用File.Move?時,記得創建archiveDirectory – 2013-03-25 00:28:56