2016-01-22 1 views
0

У меня уже есть код, который скопирует все файлы, перечисленные в списке, но мне просто нужна помощь в том, как его адаптировать и копировать по каталогам.Копирование файлов и папок из списка vb.net

Ex. из Listbox

  1. Z: \ Test \ TestFile.exe
  2. Z: \ Test \ TestFolder

Это код, который я до сих пор ... спасибо заранее

For Each item As String In FilesList.Items 
    Try 
     If IO.File.Exists(item) Then 
     My.Computer.FileSystem.CopyFile(item, 
       FolderChosenText.Text & "\" & IO.Path.GetFileName(item)) 
     End If 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 
Next 
+0

См [это] (http://stackoverflow.com/q/5525573/1070452) и/или [это] (http://stackoverflow.com/q/7191677/1070452) и/или [это] (http://stackoverflow.com/q/14978894/1070452) или любой из 28 000 человек из вашего приятеля. – Plutonix

ответ

1

Вы должны использовать ту же логику, что и файлы, а не копировать файлы, чтобы скопировать каталоги. Ниже приведен код:

  If IO.Directory.Exists(item) Then 
       My.Computer.FileSystem.CopyDirectory(item, 
       FolderChosenText.Text & "\" & IO.Path.GetFileName(item)) 
      End If 
+0

Удивительно, что было слишком легко. Спасибо за помощь. Теперь есть простой способ отслеживать процесс с индикатором выполнения? Извините за мое невежество –

1

Вы должны назначить минимальное и максимальное значение для регулятора хода выполнения. Например: 0 как минимальное и общее количество элементов, которые у вас есть в вашем ListBox, как максимальное. В цикле значение индикатора выполнения увеличится на единицу, пока оно не достигнет максимума. Ниже приведен код:

  ProgressBar1.Minimum = 0 
      ProgressBar1.Maximum = FilesList.Items.Count - 1 

      For i = 0 To FilesList.Items.Count - 1 
       ProgressBar1.Value = i 
      Next