Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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
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:

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

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

PM Quote