Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicit e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Problema For Each e copia di alcuni file
Forum - C# / VB.NET - Problema For Each e copia di alcuni file

Avatar
13Booob13 (Normal User)
Newbie


Messaggi: 13
Iscritto: 09/06/2008

Segnala al moderatore
Postato alle 18:29
Domenica, 30/08/2009
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?

PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 18:39
Domenica, 30/08/2009
Semplice, non usare foreach! Fai cosi:

Codice sorgente - presumibilmente VB.NET

  1. Dim x as Integer = 0
  2.  
  3. for x = 0 to ListBox1.Items.Count - 1
  4.  
  5.   My.Computer.FileSystem.CopyFile(ListBox1.Items(x).Text, "C:\tuo_percorso\" & ListBox3.Items(x).Text, true)
  6.  
  7. next


Ultima modifica effettuata da manvb.net il 30/08/2009 alle 18:55


"E' facile distruggere, la vera sfida creare!"(cit. me)

"Ricordati chi sei, non permettere a nessuno di cambiarti, non perdere mai te stesso. Farai grandi cose nella vita."(cit. me)

double penetration; //ouch
PM Quote
Avatar
13Booob13 (Normal User)
Newbie


Messaggi: 13
Iscritto: 09/06/2008

Segnala al moderatore
Postato alle 18:50
Domenica, 30/08/2009
Testo quotato

Postato originariamente da manvb.net:

Semplice, non usare foreach! Fai cosi:

Codice sorgente - presumibilmente VB.NET

  1. Dim x as Integer = 0
  2.  
  3. for x = 0 to ListBox1.Count - 1
  4.  
  5.   My.Computer.FileSystem.CopyFile(ListBox1.Items(x).Text, "C:\tuo_percorso\" & ListBox3.Items(x).Text, true)
  6.  
  7. next




Da errore su Listbox1.Count:
"'Count' is not a member of 'System.Windows.Forms.ListBox'."

PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 18:55
Domenica, 30/08/2009
Ehm, scusa, :

ListBox1.Items.Count

:rotfl:


"E' facile distruggere, la vera sfida creare!"(cit. me)

"Ricordati chi sei, non permettere a nessuno di cambiarti, non perdere mai te stesso. Farai grandi cose nella vita."(cit. me)

double penetration; //ouch
PM Quote
Avatar
BugliL (Member)
Pro


Messaggi: 135
Iscritto: 09/08/2009

Segnala al moderatore
Postato alle 18:58
Domenica, 30/08/2009
Ho guardato la tua procedura... l'ho modificata... prova con questa...
Codice sorgente - presumibilmente VB.NET

  1. ....Dim Nome As String
  2. ....For Each DirFile In ListBox1.Items
  3. ........Nome = Right(Nome, InStrRev(Nome, "\"))
  4. ........My.Computer.FileSystem.CopyFile(DirFile, Application.StartupPath & "/temp/dll/" & Nome, True)
  5. ....Next



La riga di comando
Codice sorgente - presumibilmente Plain Text

  1. Nome = Right(Nome, InStrRev(Nome, "\")+1)


ti permette di ottenere il nome dall'URL intero. Inquesto modo fai un ciclo solo...


Fatti non foste a viver come bruti ma per servire virtude e canoscenza... (Dante Alighieri)
PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 19:00
Domenica, 30/08/2009
Codice sorgente - presumibilmente Plain Text

  1. 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


"E' facile distruggere, la vera sfida creare!"(cit. me)

"Ricordati chi sei, non permettere a nessuno di cambiarti, non perdere mai te stesso. Farai grandi cose nella vita."(cit. me)

double penetration; //ouch
PM Quote
Avatar
13Booob13 (Normal User)
Newbie


Messaggi: 13
Iscritto: 09/06/2008

Segnala al moderatore
Postato alle 19:15
Domenica, 30/08/2009
Testo quotato

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 ^^

PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 20:56
Domenica, 30/08/2009
Testo quotato

Postato originariamente da 13Booob13:

Testo quotato

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


"E' facile distruggere, la vera sfida creare!"(cit. me)

"Ricordati chi sei, non permettere a nessuno di cambiarti, non perdere mai te stesso. Farai grandi cose nella vita."(cit. me)

double penetration; //ouch
PM Quote