Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

Caratteri Jolly in VB 2010

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

Caratteri Jolly in VB 2010

Messaggioda KillerPenguin » sab apr 07, 2012 3:44 pm

ciao ragazzi, devo copiare un file che si trova nella cartella temporanea del sistema nella cartella dove si trova l'eseguibile, e fin qui ci siamo. il problema è che il nome del file comincia sempre con 2 lettere specifiche ma poi le lettere successive possono variare, e per questo ho necessità di dover usare i carattery jolly, in primis ho pensato di provare questo:
Codice: Seleziona tutto
My.Computer.FileSystem.CopyFile(My.Computer.FileSystem.SpecialDirectories.Temp & "\" & "co?????????????.tmp", IO.Path.GetDirectoryName(Application.ExecutablePath) & "\" & "setup.exe")

ma non andava, allora ho provato questo con lo stesso risultato:

Codice: Seleziona tutto
My.Computer.FileSystem.CopyFile(My.Computer.FileSystem.SpecialDirectories.Temp & "\" & "co*.tmp", IO.Path.GetDirectoryName(Application.ExecutablePath) & "\" & "setup.exe")


l'errore che mi da in entrambi i casi è : "caratteri non validi nel percorso" . qualcuno può darmi una mano?
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Caratteri Jolly in VB 2010

Messaggioda Andy94 » sab apr 07, 2012 5:53 pm

Il problema è che il primo parametro del metodo CopyFile accetta un "percorso vero e proprio" e non un "percorso con wildcard". Per ottenere ciò che desideri devi prima salvarti in un array i file (o il file, è lo stesso) che corrispondono al jolly (quindi co*.tmp come può essere co1huuu2123.tmp o co1432354235.tmp) e poi setacciare quell'array per eseguire la procedura di copiatura.

Quindi, tradotto in pratica, devi fare una cosa così.
Codice: Seleziona tutto
For Each foundFile As String In My.Computer.FileSystem.GetFiles(My.Computer.FileSystem.SpecialDirectories.Temp, FileIO.SearchOption.SearchTopLevelOnly, "co*.tmp")
    My.Computer.FileSystem.CopyFile(foundFile, IO.Path.GetDirectoryName(Application.ExecutablePath) & "\" & foundFile)
Next

In questo modo, i file verranno copiati così come sono nella cartella di esecuzione dell'applicazione solo se rispondono al pattern.

Piccola spiegazione sui parametri accettati da GetFiles:
- Il primo è il percorso in cui cercare
- Il secondo specifica se cercare solo in quella cartella o anche nelle sottocartelle
- Il terzo è il nome file, comprensivo di eventuali caratteri jolly.

[ciao]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: Caratteri Jolly in VB 2010

Messaggioda KillerPenguin » sab apr 07, 2012 6:29 pm

mmmm ho provato a copiare il codice che mi hai dato in un butto ma mi da comunque formato file non supportato che ne dici?
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am


Re: Caratteri Jolly in VB 2010

Messaggioda developerwinme » sab apr 07, 2012 7:02 pm

Killer Penguin ha scritto:mmmm ho provato a copiare il codice che mi hai dato in un butto ma mi da comunque formato file non supportato che ne dici?

Potresti postare la porzione di codice in cui vai ad usare il pezzo in questione? [grazie]
PC: ASUS X53S (Intel Core i7-2670QM 2.20 Ghz, RAM 8 GB, NVIDIA GeForce GT520MX, Windows 8 Pro)
Mobile: Nokia Lumia 710 (CPU 1,4 Ghz, RAM 512 MB, Windows Phone 7.8)
--
developerwinme.wordpress.com
Avatar utente
developerwinme
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5014
Iscritto il: mar dic 30, 2008 7:00 pm
Località: Como

Re: Caratteri Jolly in VB 2010

Messaggioda KillerPenguin » dom apr 08, 2012 8:32 am

developerwinme ha scritto:
Killer Penguin ha scritto:mmmm ho provato a copiare il codice che mi hai dato in un butto ma mi da comunque formato file non supportato che ne dici?

Potresti postare la porzione di codice in cui vai ad usare il pezzo in questione? [grazie]

in pratica, come ho detto nel primo messaggio, non devo fare altro che copiare un file che si trova nella temp... è l'unica cosa che mi serve... sinceramente non ho capito bene la domanda
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Caratteri Jolly in VB 2010

Messaggioda Andy94 » dom apr 08, 2012 9:36 am

Developerwinme ti ha chiesto di inserire nel forum tutta la porzione di codice (ossia tutto l'evento) che include quello che ti ho fornito nel primo messaggio.
In questo modo potremo capire qual è il contesto, e se ciò che vuoi fare si può (o si deve) fare in modo diverso.
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: Caratteri Jolly in VB 2010

Messaggioda KillerPenguin » dom apr 08, 2012 3:20 pm

Andy94 ha scritto:Developerwinme ti ha chiesto di inserire nel forum tutta la porzione di codice (ossia tutto l'evento) che include quello che ti ho fornito nel primo messaggio.
In questo modo potremo capire qual è il contesto, e se ciò che vuoi fare si può (o si deve) fare in modo diverso.

è quello l'unico evento, ossia l'evento click del button che dovrà copiare questo file della cartella temporanea in quella dove si trova l'applicazione cambiandogli l'estenzione ta tmp a exe, nient'altro...
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Caratteri Jolly in VB 2010

Messaggioda developerwinme » dom apr 08, 2012 6:36 pm

Killer Penguin ha scritto:è quello l'unico evento, ossia l'evento click del button che dovrà copiare questo file della cartella temporanea in quella dove si trova l'applicazione cambiandogli l'estenzione ta tmp a exe, nient'altro...

In questo evento c'è altro codice oltre a quello in questione?

Te lo chiedo perché l'errore "formato file non supportato" non dovrebbe venire restituito da questo metodo, quindi con tutta probabilità c'è qualcosa di diverso che lo genera.
PC: ASUS X53S (Intel Core i7-2670QM 2.20 Ghz, RAM 8 GB, NVIDIA GeForce GT520MX, Windows 8 Pro)
Mobile: Nokia Lumia 710 (CPU 1,4 Ghz, RAM 512 MB, Windows Phone 7.8)
--
developerwinme.wordpress.com
Avatar utente
developerwinme
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5014
Iscritto il: mar dic 30, 2008 7:00 pm
Località: Como

Re: Caratteri Jolly in VB 2010

Messaggioda KillerPenguin » dom apr 08, 2012 6:44 pm

developerwinme ha scritto:
Killer Penguin ha scritto:è quello l'unico evento, ossia l'evento click del button che dovrà copiare questo file della cartella temporanea in quella dove si trova l'applicazione cambiandogli l'estenzione ta tmp a exe, nient'altro...

In questo evento c'è altro codice oltre a quello in questione?

Te lo chiedo perché l'errore "formato file non supportato" non dovrebbe venire restituito da questo metodo, quindi con tutta probabilità c'è qualcosa di diverso che lo genera.


nono.. nnt altro... ho riprovato ora è o notato che se non è presente nessun file con quel nome(co*.tmp) non mi copia nnt ( tuto ok) e non mi da alcun errore mentre se il file è presente invece di copiarlo mi da l'errore "formato file non supportato"... [boh] sto impazzendo!!!! [acc]
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Caratteri Jolly in VB 2010

Messaggioda developerwinme » dom apr 08, 2012 6:49 pm

Killer Penguin ha scritto:mentre se il file è presente invece di copiarlo mi da l'errore "formato file non supportato"... sto impazzendo!!!!

Sicuro che a dare l'errore non sia qualche pezzo di codice presente dopo la parte in questione? [uhm]
PC: ASUS X53S (Intel Core i7-2670QM 2.20 Ghz, RAM 8 GB, NVIDIA GeForce GT520MX, Windows 8 Pro)
Mobile: Nokia Lumia 710 (CPU 1,4 Ghz, RAM 512 MB, Windows Phone 7.8)
--
developerwinme.wordpress.com
Avatar utente
developerwinme
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5014
Iscritto il: mar dic 30, 2008 7:00 pm
Località: Como

Re: Caratteri Jolly in VB 2010

Messaggioda developerwinme » dom apr 08, 2012 6:53 pm

Ho riguardato il codice: prova a sostituire IO.Path.GetDirectoryName(Application.ExecutablePath) con Application.StartupPath [uhm]
PC: ASUS X53S (Intel Core i7-2670QM 2.20 Ghz, RAM 8 GB, NVIDIA GeForce GT520MX, Windows 8 Pro)
Mobile: Nokia Lumia 710 (CPU 1,4 Ghz, RAM 512 MB, Windows Phone 7.8)
--
developerwinme.wordpress.com
Avatar utente
developerwinme
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5014
Iscritto il: mar dic 30, 2008 7:00 pm
Località: Como

Re: Caratteri Jolly in VB 2010

Messaggioda KillerPenguin » dom apr 08, 2012 11:08 pm

developerwinme ha scritto:Ho riguardato il codice: prova a sostituire IO.Path.GetDirectoryName(Application.ExecutablePath) con Application.StartupPath [uhm]


niente ancora [V] il problema riscontrato è "Il formato del percorso specificato non è supportato."
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Caratteri Jolly in VB 2010

Messaggioda Andy94 » lun apr 09, 2012 7:48 am

Prova in questo modo.
Codice: Seleziona tutto
    For Each foundFile As String In My.Computer.FileSystem.GetFiles(My.Computer.FileSystem.SpecialDirectories.Temp, FileIO.SearchOption.SearchTopLevelOnly, "co*.tmp")
        My.Computer.FileSystem.CopyFile(foundFile, IO.Path.Combine(Application.StartupPath, IO.Path.GetFileName(foundFile)))
    Next
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: Caratteri Jolly in VB 2010

Messaggioda KillerPenguin » mar apr 10, 2012 11:26 am

Andy94 ha scritto:Prova in questo modo.
Codice: Seleziona tutto
    For Each foundFile As String In My.Computer.FileSystem.GetFiles(My.Computer.FileSystem.SpecialDirectories.Temp, FileIO.SearchOption.SearchTopLevelOnly, "co*.tmp")
        My.Computer.FileSystem.CopyFile(foundFile, IO.Path.Combine(Application.StartupPath, IO.Path.GetFileName(foundFile)))
    Next


Perfetto!!! [^] va grz [grazie]
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Caratteri Jolly in VB 2010

Messaggioda Andy94 » mar apr 10, 2012 12:49 pm

Prego. [^]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising