Ciao il controllo commondialog mi consente di selezionare solo un file alla volta (con common1.showopen) c'è un modo per ottenere una lista di file? Ovvero selezionarle + di 1 alla volta? Grazie
Ciao il controllo commondialog mi consente di selezionare solo un file alla volta (con common1.showopen) c'è un modo per ottenere una lista di file? Ovvero selezionarle + di 1 alla volta? Grazie
e usi il tasto Ctrl per selezionare piu' filecodice:CommonDialog1.MaxFileSize = 4096 CommonDialog1.FileName = "" CommonDialog1.Filter = "All Files|*.*" CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer CommonDialog1.ShowOpen
ok ho provato e funziona! Però non ho idea di come gestire la lista di file selezionati....come faccio?
Il CommonDialog ti restituisce nalla sua proprietà FileName, un'unica stringa formata dal percorso e da tutti i nomi files selezionati separati dal carattere Null.
in pratica:
(tenendo conto che # rappresenta il carattere Null)
per avere i valori separati, puoi utilizzare una Split:codice:Elenco = "C:\Temp#File1.txt#File2.txt#File3.txt#File4.txt"
a questo punto nel primo elemento dell'array avrai il percorso in tutti gli altri i singoli nomi dei files, quindi:codice:ElencoFiles = Split(Elenco, vbNull)
Booleancodice:ElencoFiles(0) = "C:\Temp" ElencoFiles(1) = "File1.txt" ElencoFiles(2) = "File2.txt" ElencoFiles(3) = "File3.txt" ElencoFiles(4) = "File4.txt"
Non riesco!
ti faccio l'esempio.
Io apro la common:
Poi faccio lo split (che non so nemmeno in cosa consiste!)codice:Dim i as integer Dim elencoFiles CommonDialog1.MaxFileSize = 4096 CommonDialog1.FileName = "" CommonDialog1.Filter = "All Files|*.*" CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer CommonDialog1.ShowOpen
Poi mettiamo il caso che voglio copiare i file selezionati... che gli dico?codice:elencoFiles=split(commonDialog1.FileName,vbNull)
Dovrebbe esser così? Perchè non mi funge bene...anche senza usare la variabile "i" e mettendo il numero nel codice...codice:do until i ="come so quanti file ho selezionato?" filecopy elencofiles(0) & "\" & elencofiles(i),"C:\miacartella" i=i+1 loop
mai sentito parlare della UBound()?
Boolean
Ok...ma a me sembra che sia lo split che non funziona....infatti mi resta lo stringone con tutti i null...
Ho risolto!
Era lo split infatti!
Il carattere che separa non è vbNull ma Chr(0)
ciao e grazie