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 - VB.NET 2013 - 7Z
Forum - C# / VB.NET - VB.NET 2013 - 7Z

Avatar
trattobasso (Normal User)
Pro


Messaggi: 89
Iscritto: 02/05/2007

Segnala al moderatore
Postato alle 21:12
Lunedì, 17/03/2014
Ciao a tutti, domanda secca...(dove sbaglio :))

Parametro corretto da linea di comando per lanciare un'estrazione con 7z:
Codice sorgente - presumibilmente Plain Text

  1. System.Diagnostics.Process.Start("7z.exe", "e C:\NomeFile.zip -oC:\MiaCartella")



Risistemata ma errata nella sinstassi:
Codice sorgente - presumibilmente Plain Text

  1. System.Diagnostics.Process.Start("7z.exe", "e ((My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\Easy Weld\Temp\Easy Weld.zip")) -o ((My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\Easy Weld\Temp"))")



Sono quasi sicuro di aver pasticciato con le parentesi ma...ho perso il lume della ragione.
Potresti darci un occhio anche voi per favore?

p.s. il comando servirebbe dal mio programma, per estrerre il contenuto di un file zip in una determinata cartella.

Grazie in anticipo a tutti.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 9:48
Martedì, 18/03/2014
Non puoi inserire tra " del codice VB.NET e sperare che venga eseguito

Il secondo parametro sarà

"e " + My.Computer ....


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
trattobasso (Normal User)
Pro


Messaggi: 89
Iscritto: 02/05/2007

Segnala al moderatore
Postato alle 15:27
Martedì, 18/03/2014
ciao nessuno grazie...a volte non so ma ultimamente canno veramente delle stupidaggini ma...concettualmente molto importanti...

ciao e grazie sta sera provo

PM Quote
Avatar
trattobasso (Normal User)
Pro


Messaggi: 89
Iscritto: 02/05/2007

Segnala al moderatore
Postato alle 10:05
Mercoledì, 19/03/2014
ciao nessuno.
da tue indicazioni dovrebbe venire fuori cosi?:

Codice sorgente - presumibilmente Plain Text

  1. System.Diagnostics.Process.Start("7z.exe", "e" ((My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\Easy Weld\Temp\Easy Weld.zip")) -o ((My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\Easy Weld\Temp"))



Ho provato a mettere -o --> "-o" ma mi da sempre errore.
Posso chiederti gentilmente un consiglio?

Ciao grazie a tutti.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:55
Mercoledì, 19/03/2014
Ti avevo scritto

"e " + My.Computer ...

non mi sembra che ci sia lo spazio dopo la e ... e non c'è il + per legare le varie parti ... quindi


"e """ + My.Computer.FileSystem.SpecialDirectories.MyDocuments + "\Easy Weld\Temp\Easy Weld.zip"" -o """ + My.Computer.FileSystem.SpecialDirectories.MyDocuments + "\Easy Weld\Temp"""


e occhio agli spazi e a tutte le virgolette!


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
trattobasso (Normal User)
Pro


Messaggi: 89
Iscritto: 02/05/2007

Segnala al moderatore
Postato alle 1:54
Sabato, 22/03/2014
Ciao rieccomi...dunque, prima di tutto scusa ma conoscevo solo & per concatenare stringhe...ho imparato un'altra cosa.
Secondo poi come da te suggerito, in una finestra del prompt mi da questo errore: Incorrect comand line.
Credo faccia riferimento da -o in poi dove in pratica specifico la cartella di destinazione per l'estrazione.
Dico questo perchè ho provato a rimuovere quel pezzo e apparte il fatto che ovviamente il file viene estratto nella cartella debug,non da errori. La stringa che sto usando come me l'hai indicata tu é:

Codice sorgente - presumibilmente Plain Text

  1. System.Diagnostics.Process.Start("7z.exe", "e """ + My.Computer.FileSystem.SpecialDirectories.MyDocuments + "\Easy Weld\Temp\8.7z"" -o """ + My.Computer.FileSystem.SpecialDirectories.MyDocuments + "\Easy Weld\Temp""")



...però non è strano che se copio i file 7z.exe e 7z.dll in quella cartella mi estrae il contenuto in debug?

Grazie in anticipo.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:26
Sabato, 22/03/2014
C'è uno spazio di troppo dopo lo switch -o ... toglilo

Codice sorgente - presumibilmente Plain Text

  1. System.Diagnostics.Process.Start("7z.exe", "e """ + My.Computer.FileSystem.SpecialDirectories.MyDocuments + "\Easy Weld\Temp\8.7z"" -o""" + My.Computer.FileSystem.SpecialDirectories.MyDocuments + "\Easy Weld\Temp""")



E' ovvio che 7z.exe deve essere raggiungibile (in un percorso incluso nel path) altrimenti devi indicare tutto il percorso

"C:\programmi\7-Zip\7z.exe"


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
trattobasso (Normal User)
Pro


Messaggi: 89
Iscritto: 02/05/2007

Segnala al moderatore
Postato alle 21:24
Martedì, 25/03/2014
vero. grazie di tutto

PM Quote