2016-01-20 1 views
0

Так что я пытаюсь скопировать файлы моего пользователь помещает в ListBox, и я, кажется, есть проблема, потому что на линии, где я пытаюсь скопировать файлы, которые я получаю эту ошибку:Я не могу скопировать файлы, потому что «Формат данного пути не поддерживается».

An unhandled exception of type 'System.NotSupportedException' occurred in mscorlib.dll Additional information: The given path's format is not supported. 

После некоторые исследования, я считаю, это потому, что я объединять струны и прочее, но я не уверен, поэтому подумал, что могу попросить здесь.

Если это помогает, я проверял, что элементы списка - это допустимые пути к файлам.

Вот мой код:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim result As DialogResult = MessageBox.Show("Are you sure you want to finish the playlist?", "Finish Playlist- WikiFinder", MessageBoxButtons.YesNo) 
    If (result = DialogResult.Yes) Then 
     For Each Item In ListBox1.Items 
      My.Computer.FileSystem.CopyFile(Item.ToString(), MusicMenu.FolderBrowserDialog2.SelectedPath.ToString() & Item.ToString()) 
     Next 
    Else 
    End If 
End Sub 

Имейте в виду, я действительно никогда не работал с ListBoxes, и это мой первый раз пытается метод CopyFile. Кто-нибудь может мне помочь?

+1

результат 'MusicMenu.FolderBrowserDialog2.SelectedPath.ToString() & Item.ToString()', по-видимому, не действует. Используйте «Path.Combine» для создания путей, но мы понятия не имеем, соответствуют ли элементы списка действительным сегментам пути. – Plutonix

+0

Спасибо, что сработало! – Klink45

ответ

0

Метод Path.Combine исправил мою проблему.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim result As DialogResult = MessageBox.Show("Are you sure you want to finish the playlist?", "Finish Playlist- WikiFinder", MessageBoxButtons.YesNo) 
    If (result = DialogResult.Yes) Then 
     For Each Item In ListBox1.Items 
      Dim str As String = IO.Path.Combine(MusicMenu.FolderBrowserDialog2.SelectedPath.ToString(), Item.ToString()) 
      My.Computer.FileSystem.CopyFile(Item.ToString(), str) 
     Next 
    Else 
    End If 
End Sub 

Я считаю, что вы не можете объединить строки, когда записываете пути, и это то, что я делал неправильно.

Чтобы узнать больше о Path.Combine: https://msdn.microsoft.com/en-us/library/fyy7a5kt(v=vs.110).aspx