移动相同类型的多个文件

时间:2013-12-01 09:23:17

标签: vb.net

我需要能够将所有.pbo文件从一个文件夹移动到另一个文件夹中。以下是我的代码:

For Each foundPBO As String In My.Computer.FileSystem.GetFiles( _
        downloadDirectory & "\Mod Works\Process\@" & CurrentMod, _
        FileIO.SearchOption.SearchAllSubDirectories, "*.pbo")

        My.Computer.FileSystem.MoveFile(foundPBO, downloadDirectory & "\Mod Works\Process\@STHUD\Addons")
Next

当我运行它时,它没有做任何事情,目录字符串是正确的(downloadDirectory设置正确& CurrentMod设置正确)

有什么建议吗?

更新

感谢您的帮助,虽然我在转换时出错了?这是我的以下代码,它没有得到“3”消息(调试):

Dim testDir As String = downloadDirectory & "\Mod Works\Process\@STHUD\"
For Each foundPBO As String In My.Computer.FileSystem.GetFiles( _
        MsgBox("2"), _
        testDir, _
        MsgBox("3"), _
        FileIO.SearchOption.SearchAllSubDirectories, "*.pbo")
        MsgBox("4")

        My.Computer.FileSystem.MoveFile(foundPBO, downloadDirectory & "\Mod Works\Process\@STHUD\Addons\" & System.IO.Path.GetFileName(foundPBO))
        MsgBox("5")
Next

1 个答案:

答案 0 :(得分:1)

目标路径错误:您打算将"dir_source\file_source.pbo"移至"dir_dest\";但你应该这样做:"dir_dest\file_source.pbo"。只需替换

My.Computer.FileSystem.MoveFile(foundPBO, downloadDirectory & "\Mod Works\Process\@STHUD\Addons") 

使用:

My.Computer.FileSystem.MoveFile(foundPBO, downloadDirectory & "\Mod Works\Process\@STHUD\Addons\" & System.IO.Path.GetFileName(foundPBO))

请记住,对于您正在做的所有事情(获取文件并移动它们),有System.IO个等价物。您可能更愿意依赖System.IO而不是My.Computer.FileSystem,只要此命名空间包含执行更多与I / O相关的操作(即处理文件,目录和路径)的方法。