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

Varibile d'ambinte %cd% in visual basic

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

Varibile d'ambinte %cd% in visual basic

Messaggioda KillerPenguin » gio nov 24, 2011 4:04 pm

eccomi con un altro problema:
devo copiare un file ii cui percorso è stato scritto nella textbox1, la cui destinazione deve essere la directory dove si trova l'eseguibile del form. non so se sono stato chiaro.
esempio se lo dovessi scrivere in un file cmd scriverei:
Codice: Seleziona tutto
copy "textbox1" "%cd%"


in vb invece scrivo:
Codice: Seleziona tutto
My.Computer.FileSystem.CopyFile(TextBox1.Text, %cd%)

ma %cd% non me lo dà, quindi cosa devo mettere al posto di %cd% per far si che la destinazione sia la directory dove si trova l'eseguibile?
spero di essere stato chiaro
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda Andy94 » gio nov 24, 2011 5:44 pm

La cosa più semplice che mi viene in mente è questa:
Codice: Seleziona tutto
IO.Path.GetDirectoryName(Application.ExecutablePath)


Quel codice ti fornisce il percorso in cui si trova l'eseguibile chiamante, senza l'ultima barra (qualora l'indirizzo non si limiti ad una radice).
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda KillerPenguin » gio nov 24, 2011 8:51 pm

io ho scritto queto:
Codice: Seleziona tutto
My.Computer.FileSystem.CopyFile(TextBox1.Text, IO.Path.GetDirectoryName(Application.ExecutablePath))


e tutto procede bene ma quando compilo la relase, la avvio e premo il pulsante mi dice dice " impossibile completare l'operazione. nel percorso "percorso dell'eseguibile" è già presente una directory."

centra nnt che per scrivere il percorso del file da copiare uso un button con la stringa:
Codice: Seleziona tutto
OpenFileDialog1.ShowDialog()
        TextBox1.Text = OpenFileDialog1.FileName
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am


Re: Varibile d'ambinte %cd% in visual basic

Messaggioda Andy94 » ven nov 25, 2011 2:52 pm

Il secondo parametro identifica una directory e non un percorso ad un file, come il metodo che usi vuole.
Devi avere il percorso completo di nome in entrambi i parametri.
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda KillerPenguin » ven nov 25, 2011 10:26 pm

scusami ma ho cominciato con il vb da poco, puoi dirmi xfavore cosa devo mettere len butto in modo che mi copi il file il cui percorso e dato dalla textbox1 nella cartella dove è presente l'eseguibile?.. scusa se ti do tutto questo fastidio
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda Andy94 » ven nov 25, 2011 10:32 pm

Qualcosa come questo potrebbe funzionare.
Codice: Seleziona tutto
My.Computer.FileSystem.CopyFile(TextBox1.Text, IO.Path.GetDirectoryName(Application.ExecutablePath)) & "\" & IO.Path.GetFileName(TextBox1.Text))
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda KillerPenguin » ven nov 25, 2011 10:34 pm

provo subito!
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda KillerPenguin » ven nov 25, 2011 10:37 pm

mi da errore, dice prevista fine dell'istruzione :(
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda Andy94 » ven nov 25, 2011 10:40 pm

Ho fatto confusione con le parentesi perché non ho controllato il codice nell'IDE prima di postarlo. Spiacente.
Prova così:
Codice: Seleziona tutto
My.Computer.FileSystem.CopyFile(TextBox1.Text, IO.Path.GetDirectoryName(Application.ExecutablePath) & "\" & IO.Path.GetFileName(TextBox1.Text))
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda KillerPenguin » ven nov 25, 2011 10:44 pm

Andy94 ha scritto:Ho fatto confusione con le parentesi perché non ho controllato il codice nell'IDE prima di postarlo. Spiacente.
Prova così:
Codice: Seleziona tutto
My.Computer.FileSystem.CopyFile(TextBox1.Text, IO.Path.GetDirectoryName(Application.ExecutablePath) & "\" & IO.Path.GetFileName(TextBox1.Text))


[grazie] [grazie] Perfetto Andy94 Ancora una volta mi hai risolto un problema!!! Sei Miticoooooooo [rotolo] [rotolo] [applauso+]
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda Andy94 » ven nov 25, 2011 10:50 pm

Prego. [^]

Tieni presente che questo codice è molto elementare e poco controllato. Se il file dovesse, per qualunque motivo, già essere presente (o non essere copiabile, o chissà), l'applicazione andrà in crash a causa di un'eccezione. Ti converrebbe quindi includere il tutto in un blocco Try/Catch per prevenire la questione (qualora ce ne sia reale bisogno, altrimenti puoi fare a meno). Un esempio di ciò cui mi riferisco è:
Codice: Seleziona tutto
Try
My.Computer.FileSystem.CopyFile(TextBox1.Text, IO.Path.GetDirectoryName(Application.ExecutablePath) & "\" & IO.Path.GetFileName(TextBox1.Text))
Catch FileCopyException As Exception
MsgBox("Errore nella copia del file: " & FileCopyException.Message,MsgBoxStyle.Critical or MsgBoxStyle.OkOnly, "Eccezione nella copia")
End Try


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

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda KillerPenguin » sab nov 26, 2011 9:24 am

Perdona la mia ingnoranza ma se devo farsi che il file che deve essere copiato venga copiato in una cartella chiamata prova che si trova nella stessa cartella dell'eseguibile cosa devo scrivere??
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda Andy94 » sab nov 26, 2011 2:05 pm

Devi aggiungere la directory che ti interessa fino ad ottenere il percorso voluto. Nel qual caso avrai:
Codice: Seleziona tutto
    My.Computer.FileSystem.CopyFile(TextBox1.Text, IO.Path.GetDirectoryName(Application.ExecutablePath) & "\prova\" & IO.Path.GetFileName(TextBox1.Text))
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda KillerPenguin » sab nov 26, 2011 2:36 pm

Grazie infinite Andy, sei un mito. se ho altri problemi so dove trovarti [rolleyes]
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda Andy94 » sab nov 26, 2011 6:18 pm

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

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda KillerPenguin » lun nov 28, 2011 4:05 pm

scusa se ti scasso ma, se voglio copiare non uno ma più files sempre in quella cartella?
mi dici cosa scrivere nel button?
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda Andy94 » lun nov 28, 2011 4:11 pm

Ripeti il comando di copia tante volte quanto ti serve. [^]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: Varibile d'ambinte %cd% in visual basic

Messaggioda KillerPenguin » lun nov 28, 2011 4:32 pm

solo che invece di usare una textbox vorrei usare una listbox con rispettivo button per inserisci all'interno i file da copiare, il problema è che questo
Codice: Seleziona tutto
My.Computer.FileSystem.CopyFile(TextBox1.Text, IO.Path.GetDirectoryName(Application.ExecutablePath) & "\" & IO.Path.GetFileName(TextBox1.Text))
funziona solo per copiare un file, mentre io vorrei che tutti i files della listbox vengano copiati indipendentemente dal numero. puoi 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


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron
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