Esiste un modo per copiare una cartella e tutto il suo contenuto, in un’altra che abbia un nome diverso?
Ho risolto in questo modo:
Dim dest as FolderItem = GetFolderItem("").Parent.Parent.Child("KH").Child(file1.text)
Dim source as FolderItem = GetFolderItem("").parent.child("DEF").Child(file2.Text)
For i As Integer = 1 To source.Count
Dim sourceItem as FolderItem = source.TrueItem(i)
sourceItem.CopyFileTo(dest)
next
A proposito! Child(file1.text) e Child(file2.text) sono le fieldbox contenenti i nomi delle cartelle!
Giampaolo, quello da te proposto funziona a patto che la cartella contenga solo files. Se contiene altre cartelle non funziona.
Dovresti anzitutto verificare the nel loop se il file una cartella (Folderitem.Directory) e in tal caso richiamare ricorsivamente la stessa funzione.
Qualcosa di simile a questo:
Private Sub CopyFileOrFolder(source as folderItem, dest as folderItem)
dim destFolder as folderItem
for i as integer = 1 to source.Count
if source.TrueItem(i).Directory then
destFolder = dest.child(source.TrueItem(i).name)
destFolder.createAsFolder
CopyFileOrFolder(source.TrueItem(i), destFolder)
else
source.TrueItem(i).CopyFileTo(dest)
end if
next
End Sub
da richiamare inizialmente con:
Dim dest as FolderItem = GetFolderItem("").Parent.Parent.Child("KH").Child(file1.text)
Dim source as FolderItem = GetFolderItem("").parent.child("DEF").Child(file2.Text)
CopyFileOrFolder(source, dest)
Attenzione che l’ho scritto direttamente quindi potrebbe contenere errori. Inoltre manca un minimo controllo sui possibili errori, quali un folder gi esistente, permessi di lettura o scrittura, etc.)
Grazie per la precisazione Massimo! In effetti quello che dovevo copiare erano solo files e pertanto il problema non mi si presentava. Ma quello che qui hai indicato molto prezioso per il futuro. Grazie di nuovo!