Oppure

Loading
30/08/09 16:29
13Booob13
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?
aaa
30/08/09 16:39
manvb.net
Semplice, non usare foreach! Fai cosi:

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 30/08/09 16:55
aaa
30/08/09 16:50
13Booob13
Postato originariamente da manvb.net:

Semplice, non usare foreach! Fai cosi:

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'."
aaa
30/08/09 16:55
manvb.net
Ehm, scusa, è:

ListBox1.Items.Count

:rotfl:
aaa
30/08/09 16:58
BugliL
Ho guardato la tua procedura... l'ho modificata... prova con questa...
....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
Nome = Right(Nome, InStrRev(Nome, "\")+1)

ti permette di ottenere il nome dall'URL intero. Inquesto modo fai un ciclo solo...
aaa
30/08/09 17:00
manvb.net
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 30/08/09 17:08
aaa
30/08/09 17:15
13Booob13
Postato originariamente da manvb.net:

Ehm, scusa, è:

ListBox1.Items.Count

:rotfl:

Mi dava errore per il .text e ho messo .toString, ora funziona alla perfezione :D
Grazie mille ^^
aaa
30/08/09 18:56
manvb.net
Postato originariamente da 13Booob13:

Postato originariamente da manvb.net:

Ehm, scusa, è:

ListBox1.Items.Count

:rotfl:

Mi dava errore per il .text e ho messo .toString, ora funziona alla perfezione :D
Grazie mille ^^


Ho scitto il codice di corsa... :D
aaa