CodieCalm Ответов: 1

Как сделать несколько копий файлов


Когда я копирую выбранный элемент(ы) типа файла listview, а затем вставляю на рабочий стол, так что только 1 может вставить, но выбранный-это 3 элемента. как организовать цикл или массив элемент для многократного копирования.

Что я уже пробовал:

For Each lvi As ListViewItem In ListView1.SelectedItems
                   For Each info2 In New DirectoryInfo(Me.dirPath).GetFiles(Conversions.ToString(Operators.ConcatenateObject(Operators.ConcatenateObject("*", lvi.Text), "*")), SearchOption.AllDirectories)
                       Dim data As New DataObject()
                       If File.Exists(info2.FullName) Then
                           Try
                               Dim DataObject As New DataObject
                               Dim tempFileArray As New ArrayList
                               tempFileArray.Add(Path.GetFullPath(info2.FullName))
                               DataObject.SetData(DataFormats.FileDrop, False, DirectCast(tempFileArray.ToArray(GetType(String)), String()))
                               Clipboard.SetDataObject(DataObject)

                               'Dim data As New System.Collections.Specialized.StringCollection()
                               'data.Add(info2.FullName)
                               'Clipboard.SetFileDropList(data)
                           Catch exception1 As Exception
                               Dim ex As Exception = exception1
                               ProjectData.SetProjectError(ex)
                               Interaction.MsgBox(ex.Message, MsgBoxStyle.ApplicationModal, Nothing)
                               ProjectData.ClearProjectError()
                           End Try
                       End If
                   Next
               Next

1 Ответов

Рейтинг:
1

Dave Kreskowiak

Во-первых, эта строка-полный мусор:

or Each info2 In New DirectoryInfo(Me.dirPath).GetFiles(Conversions.ToString(Operators.ConcatenateObject(Operators.ConcatenateObject("*", lvi.Text), "*")), SearchOption.AllDirectories)

Разбейте эту строку на отдельные операторы, чтобы вы могли отладить то, что в ней происходит. Не зарывайте вызовы метода/свойства внутри других вызовов метода/свойства. Все, что вы делаете, - это делаете ваш код более полным и усложняете его отладку, как в этом случае.

Кроме того, вы скрываете все виды функциональности в дерьмовых классах, таких как "операторы", поэтому никто не может точно сказать вам, что происходит и как это исправить.

На первый взгляд я вижу, по крайней мере, 5+ новых методов, которые вы должны создавать для обработки отдельных задач, таких как возврат списка файлов с заданного пути. Я также могу порекомендовать вам избавиться от класса "операторы", или что бы это ни было.