#vb.net #file #copy #clipboard
Вопрос:
У меня есть основная папка «A» программы X с файлами и вложенными папками «B», «C», «D» с файлами в них и другими вложенными папками и т. Д. Я создал процедуру, которая с некоторой логикой заполняет некоторые из этих файлов их полными путями и представлением списка.
Например c:ABFile.txt и т. д
Когда пользователь проверяет файлы в списке, я копирую файлы в буфер обмена со следующим подразделом
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim DataObject As New DataObject
Dim tempFileArray As New ArrayList
For Each chkitem In ListView1.CheckedItems
tempFileArray.Add(chkitem.text)
Next
DataObject.SetData(DataFormats.FileDrop, False, DirectCast(tempFileArray.ToArray(GetType(String)), String()))
Clipboard.SetDataObject(DataObject)
End Sub
В это время, когда пользователи вставляют в папку, например c:OtherFolder , все выбранные файлы вставляются внутрь c:OtherFolder куда вставил пользователь.
Есть ли какой-либо способ, когда пользователь вставляет файлы в папку, чтобы вставить копии их исходных путей ? Я имею в виду, что если файл был скопирован с c:ABFile.txt затем во время пасты в C:OtherFolder , папки A и B, которые должны быть созданы, и file.txt для вставки в папку C:OtherFolderAB ?
Комментарии:
1. Какова ценность
chkitem.text
, когда вы выполняете этот код? Предположительно, это просто название файла. Если вы ожидаете, что цель отбрасывания сможет вывести путь на другом конце, то вам нужно поместить этот путь в свой конец.2. @jmcilhinney , нет, это весь путь c:ABFile.txt
3. Я проведу некоторые тесты и свяжусь с вами, если никто не ответит заранее.
4. Зачем возиться с буфером обмена? Почему бы просто не спросить пользователя, где ему нужны файлы (диалоговое окно «Сохранить файл» или попросите его перетащить папку назначения в ваше приложение) ?
5. Знание папки назначения и источника позволяет добавить путь к источнику в корневой каталог назначения