13Booob13 (Normal User)
Newbie
Messaggi: 13
Iscritto: 09/06/2008
|
Ciao a tutti!
Ho un piccolo problema..
Praticamente io ho due listbox, in una ci son scritti tutti i file con directory (es. C:\prova.txt) e nell'altra ci son solo i nomi (es. prova.txt).
Ora io dovrei far in modo che i file nella lista vengano copiati, ho pensato di fare:
For Each item In ListBox1.Items
For Each nome In ListBox3.Items
My.Computer.FileSystem.CopyFile(item, Application.StartupPath & "/temp/dll/" & nome, True)
Next
Next
Il codice funziona, Il problema è che tutti i file che copia son della stessa dimensione del primo file (Se ciao.txt pesa 50Kb anche prova.jpg ne pesa 50kb)..
Probabilmente è per il doppio for, è che non ho idea di come possa fare XD
Consigli?
|
|
manvb.net (Member)
Guru
Messaggi: 663
Iscritto: 28/01/2008
|
Semplice, non usare foreach! Fai cosi:
Codice sorgente - presumibilmente VB.NET |
Dim x as Integer = 0 for x = 0 to ListBox1.Items.Count - 1 My.Computer.FileSystem.CopyFile(ListBox1.Items(x).Text, "C:\tuo_percorso\" & ListBox3.Items(x).Text, true) next
|
Ultima modifica effettuata da manvb.net il 30/08/2009 alle 18:55 |
|
13Booob13 (Normal User)
Newbie
Messaggi: 13
Iscritto: 09/06/2008
|
Postato originariamente da manvb.net:
Semplice, non usare foreach! Fai cosi:
Codice sorgente - presumibilmente VB.NET |
Dim x as Integer = 0 for x = 0 to ListBox1.Count - 1 My.Computer.FileSystem.CopyFile(ListBox1.Items(x).Text, "C:\tuo_percorso\" & ListBox3.Items(x).Text, true) next
|
|
Da errore su Listbox1.Count:
"'Count' is not a member of 'System.Windows.Forms.ListBox'."
|
|
manvb.net (Member)
Guru
Messaggi: 663
Iscritto: 28/01/2008
|
Ehm, scusa, è:
ListBox1.Items.Count
|
|
BugliL (Member)
Pro
Messaggi: 135
Iscritto: 09/08/2009
|
Ho guardato la tua procedura... l'ho modificata... prova con questa...
Codice sorgente - presumibilmente VB.NET |
....Dim Nome As String ....For Each DirFile In ListBox1.Items ........Nome = Right(Nome, InStrRev(Nome, "\")) ........My.Computer.FileSystem.CopyFile(DirFile, Application.StartupPath & "/temp/dll/" & Nome, True) ....Next
|
La riga di comando
Codice sorgente - presumibilmente Plain Text |
Nome = Right(Nome, InStrRev(Nome, "\")+1)
|
ti permette di ottenere il nome dall'URL intero. Inquesto modo fai un ciclo solo... |
|
manvb.net (Member)
Guru
Messaggi: 663
Iscritto: 28/01/2008
|
Codice sorgente - presumibilmente Plain Text |
Nome = Right(Nome, InStrRev(Nome, "\")+1)
|
Sinceramente preferisco non usare funzioni alla vb6(intendo quelle del namespace Microsoft.VisualBasic) perchè sono vecchie e obsolete(utili solo per facilitare il porting da vb6 a vb.net)! Poi fai tu.
Ultima modifica effettuata da manvb.net il 30/08/2009 alle 19:08 |
|
13Booob13 (Normal User)
Newbie
Messaggi: 13
Iscritto: 09/06/2008
|
Postato originariamente da manvb.net:
Ehm, scusa, è:
ListBox1.Items.Count
|
Mi dava errore per il .text e ho messo .toString, ora funziona alla perfezione
Grazie mille ^^ |
|
manvb.net (Member)
Guru
Messaggi: 663
Iscritto: 28/01/2008
|
Postato originariamente da 13Booob13:
Postato originariamente da manvb.net:
Ehm, scusa, è:
ListBox1.Items.Count
|
Mi dava errore per il .text e ho messo .toString, ora funziona alla perfezione
Grazie mille ^^ |
Ho scitto il codice di corsa... |
|