如何使用vb.net移动多个文件

时间:2014-12-03 20:30:12

标签: vb.net visual-studio-2010

是否可以将所有文件/文件夹移动到一个包含某些单词的目录中并将其移动到另一个单词?例如,所有文件/文件夹名为'测试此'并将它们移动到另一个文件夹?我尝试以下但它不起作用? “测试这个'可以在文件名中的任何位置显示。

   Dim directory = "C:\Test\"
        For Each filename As String In IO.Directory.GetFiles(directory, "testing this", IO.SearchOption.AllDirectories)
            My.Computer.FileSystem.MoveFile(filename, "C:\Test\Old\" & "testing this")
        Next

2 个答案:

答案 0 :(得分:1)

您可以在GetFiles方法中使用通配符。

所以:

Dim directory = "C:\Test\"
        For Each filename As String In IO.Directory.GetFiles(directory, "*testing this*", IO.SearchOption.AllDirectories)
            My.Computer.FileSystem.MoveFile(filename, "C:\Test\Old\" & "testing this")
        Next

答案 1 :(得分:1)

不,My.Computer.FIlesystem.Move文件每次调用只能移动一个文件 您需要在源目录周围构建一个循环并逐个移动每个文件

Dim sourceDir = "C:\test"
For Each file As String In My.Computer.FileSystem.GetFiles( sourceDir, _

    Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "*testing this*")

    Dim destPath = file.Substring(sourceDir.Length + 1)
    Dim destFile = System.IO.Path.GetFileName(file)

    My.Computer.FileSystem.MoveFile(file, _
               System.IO.Path.Combine("C:\Test\Old", destPath, destFile ))
Next