我需要能够将所有.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
答案 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相关的操作(即处理文件,目录和路径)的方法。