PDA

Visualizza versione completa : Copia cartelle in VB


Pierluigi
17-08-2001, 20.55.46
Vorrei copiare una cartella intera e le sue sottodirectory con comandi di Visual Basic 5.0 ma non riesco a trovare le istruzioni giuste.

Ho provato con FileCopy ma funziona solo con i file singoli.

Ciao

xegallo
20-08-2001, 18.20.27
Funzione CreateDirectory

Declare Function CreateDirectory Lib "kernel32.dll" Alias "CreateDirectoryA" _
(ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) _
As Long

PIATTAFORMA: Win 32s, Win 95/98, Win NT

La funzione CreateDirectory crea una nuova directory sul disco.
La funzione imposterà anche gli attributi di sicurezza se il sistema operativo
lo supporta (Tale parametro, è valido solo per sistemi WIN NT , mentre per i
sistemi WIN95/98 , viene ignorato).
La Funzione ritorna 1 se tutto fila liscio, oppure 0 se avviene qualche errore



lpPathName Contiene il nome della nuova directory da creare.
lpSecurityAttributes Sono gli attributi di sicurezza che vengono dati alla nuova directory



in qusto modo crei la directori e poi ti fai un ciclo che copia i file

Pierluigi
20-08-2001, 23.25.41
Praticamente io la cartella ce l'ho già creata, comunque posso farla con Mkdir.

Il problema è che non posso fare FileCopy "C:\abc\*.*","d:\abc", perchè mi dice File non trovati.

Puoi spiegarmi meglio? grazie

xegallo
21-08-2001, 02.05.19
guarda nell'allegato

LuFo
21-08-2001, 17.09.30
prova così:

Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile "C:\mieidocumenti\lettere\*.*", "C:\cartellatemporanea\"

Pierluigi
25-08-2001, 21.33.40
Ho provato l'istruzione di LuFo e funziona; solo che mi interessava copiare oltre che ai file presenti nella cartella, anche tutte le sottocatelle con i relativi file .

Si può fare questa cosa?

LuFo
27-08-2001, 15.13.20
Originariamente inviato da Pierluigi
Ho provato l'istruzione di LuFo e funziona; solo che mi interessava copiare oltre che ai file presenti nella cartella, anche tutte le sottocatelle con i relativi file .

Si può fare questa cosa?

Set FS = CreateObject("Scripting.FileSystemObject")
FS.CopyFolder "C:\MiaCartella", "C:\CartellaTemporanea\"

puoi utilizzare anche "*" per poter indicare tutte le cartelle contenute in una directory:

FileSystemObject.CopyFolder "c:\mieidocumenti\lettere\*", "c:\cartellatemporanea\"


Ciao! ;)

matsugoru
28-08-2001, 08.10.38
Io dico una cosa xchè non puo usare la copia di windows, quella finestrella simpatica che sivede quando, con la gestione risorse si copia una cartella da un disco all'altra.
Cosi facendo copia tutti i file e le sotto cartelle con tutti i file

CIAUUuuzzzz :)

Pierluigi
30-08-2001, 23.03.31
Questa volta ci siamo; ho usato le indicazioni di LuFo e sono riuscito a risolvere il problema.

Per perfezionare il tutto ho eseguito in cascata le istruzioni Fs.CopyFile dopodichè Fs.CopyFolder, in modo da copiare sia i file della prima cartella che nomino, sia tutte le sottocartelle con tutti i file allegati.

Quando non ci sono file nella cartella principale viene generato un errore ma sono riuscito a ignorarlo con l'istruzione On Error goto next.


Per rispondere a Matsugoru vorrei dirgli che ho fatto un programmino in Visual basic, il quale ogni settimana all'avvio del computer fa automaticamente la copia di tutte le cartelle vitali del sistema operativo, in modo che possa recuperarle in caso di guasti o crash del computer.


ancora un grazie a tutti.

matsugoru
31-08-2001, 15.30.23
Un prg così l'ho fatto anch'io circa 1 anno fa :)