Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ora che ho visto qualcosa di più del codice ti potrei dare dei consigli per migliorare questo programma, visto che dal punto di vista logico ci sono dei passi che puoi saltare:
1. Non ti serve ricorrere a 7zip per estrarre un file .zip
2. Non è necessario decomprimere il file, eliminare quello di destinazione e muovere quello estratto:
Metti nella variabile archivedir la directory dell'archivio, e in extractdir la directory finale. La logica del codice sta nell'estrarre lo zip direttamente nella cartella
Il parametro True in entry.ExtractToFile si occuperà di sovrascrivere eventualmente il file. Prova questo codice e dimmi se ti funziona.
Inoltre se proprio vuoi fare le cose in modo formale, puoi gestire un download in modo asincrono e fare il modo che il programma non si blocchi mentre è impegnato a scaricare il file:
PrivateSub W_DownloadFileCompleted(ByVal sender AsObject, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)Handles W.DownloadFileCompleted
If e.CancelledThen
'Download annullato
ElseIf e.ErrorIsNotNothingThen
'Errore durante il download
Else
'Download completato
Extract_Zip()
EndIf
EndSub
Potresti dover adattare un po' il codice visto che non ho il tuo programma sottomano, comunque questo codice dovrebbe andar bene.
Vantaggi in un metodo come questo?
1. Download asincrono ed estrazione solo dopo il termine del download
2. Estrazione senza l'uso di programmi di terze parti, quindi non devi né avviare né aspettare che processi particolari si chiudono
3. Estrazione diretta alla directory interessata senza scomporla in più passaggi
N.B.: Se ti piace il metodo di nessuno e aspettare che il processo si chiuda, non serve dichiarare un'oggetto Process ma usare l'istruzione
Codice sorgente - presumibilmente Plain Text
Process.Start("processo.exe").WaitForExit()
Quell'istruzione "congelerà" il tuo programma finché il processo che hai avviato non verrà terminato.
Ultima modifica effettuata da R0gerBlack il 26/03/2014 alle 19:02
però...adesso non posso usare la scusa della differenza tra la quantità delle tue stelle e le mie....sono proprio ignorante io (nel senso vero che ignoro...)
ci provo di sicuro perchè ha una logica molto più professionale, quello che ho fatto io sembra più un file bat che fa tante cose in sequenza effetivamente senza alcun particolare controllo.
ti ringrazio davvero e ringrazio tutti quelli che sono intervenuti, un grande aiuto come sempre.