2013-03-25 52 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