Vb.net 尝试移动具有特定格式的文件

Vb.net 尝试移动具有特定格式的文件,vb.net,Vb.net,所以我要做的是将.mp3格式的文件从下载文件夹移动到音乐文件夹。这是我当前的代码: Private Sub BtnMove_Click(sender As System.Object, e As System.EventArgs) Handles BtnMove.Click Dim di As New DirectoryInfo("D:\Downloads") Dim files() As FileInfo = di.GetFiles("*.mp3", SearchOption.

所以我要做的是将.mp3格式的文件从下载文件夹移动到音乐文件夹。这是我当前的代码:

Private Sub BtnMove_Click(sender As System.Object, e As System.EventArgs) Handles BtnMove.Click
    Dim di As New DirectoryInfo("D:\Downloads")
    Dim files() As FileInfo = di.GetFiles("*.mp3", SearchOption.AllDirectories)

    My.Computer.FileSystem.MoveFile("D:\Downloads" + files(),
    "D:\Desktop\Music\")
End Sub

当前,您正试图将名为“DownloadsSystem.IO.FileInfo[]”的文件从“D:\”驱动器中移动,并试图将其作为目录移动到“D:\Desktop\”

问题是:

首先,
files()
数组是一个完整的列表,其中包含object System.IO.FileInfo。不能在一行上同时使用其中的所有对象。因为它不是字符串,所以当应用程序连接两个“字符串”时,它将使用对象的名称

其次,如果您在键入代码时看到弹出的小框,
My.Computer.FileSystem.MoveFile(
),您将看到参数是sourceFileName和destinationFileName。这意味着您必须在两个参数中定义(想要的)文件的名称

话虽如此,这里有一个代码可以工作:

Dim di As New DirectoryInfo("D:\Downloads")
Dim files() As FileInfo = di.GetFiles("*.mp3", SearchOption.AllDirectories)

For Each f As FileInfo In files
    My.Computer.FileSystem.MoveFile(f.FullName, Path.Combine("D:\Desktop\Music", f.Name))
Next

问题在哪里?你需要迭代文件数组。对象浏览器、Intellisence和MSDN都会向你显示
MoveFiles
使用字符串,而不是字符串数组。我很恼火人们在一个非常好的问题中减去了这个问题……他们可能会否决它,因为答案其实很简单,而且你似乎不知道如何处理数组。