› Sviluppare funzionalita su Microsoft Office con VBA › Copiare una directory
-
AutoreArticoli
-
Ho bisogno di spostare una cartella da una directory ad un'altra, con tutti i file in essa contenuti, ma non trovo l'istruzione giusta.
Quando devo copiare un file uso:
FileCopy e funziona perfettamente
Ma se devo copiare una cartella, con tutti i file in essa contenuti, non funzionano
né CopyFolder
né CopyDirectory
proprio non li riconosce come funzioni ...
ma perche? Come posso fare carissimi?
CopyFolder esiste ma e' un metodo di un oggetto FileSystemObject, quindi prima devi dichiarare una variabile di questo tipo e poi utilizzarne i metodi. Se ti serve spostare una cartella da una locazione all'altra devi usare MoveFolder che appartiene sempre a un oggetto FileSystemObject.
dim fso as object set fso = createobject("scripting.filesystemobject") fso.movefolder source, destinationsource puo' contenere caratteri jolly, mentre destination no.
Se source contiene caratteri jolly o destination termina con un separatore di percorso (\), presume che destination specifichi una cartella esistente in cui spostare i file corrispondenti. Altrimenti, presume che destination sia il nome di una cartella di destinazione da creare.
Puoi anche efficacemente utilizzare una bella Shell di Windows. Senza usare oggetti esterni da annientare poi (avevo scordato di specificarlo):
source = "c:\users\...\desktop\test" destination = "d:\backup" s = "cmd /c robocopy12/e /move" s = replace(s, "`", chr(34)) s = replace (s, "1", source) s = replace (s, "2", destination) shell sRobocopy e' un comando molto carino e molto potente.
In questo esempio devi sostituire i tre puntini col nome utente corretto, avere sul desktop una cartella test con dei file e un disco d, questo sposta test dal desktop in d:\backup (e crea la directory se non esiste).
-
AutoreArticoli
