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