Ho bisogno di decomprimere en zip alcuni file nella mia applicazione usando Shell32. In questo momento, io uso srcFolder.CopyHere(destFolder.Items())
per raggiungere questo obiettivo. Tuttavia, la mia prossima riga di codice richiede il file ZIP appena creato. Ma dal momento che il metodo CopyHere
è Async, come posso verificare quando è finito? In questo momento io uso un Thread.Sleep
per circa 500 ms, che è abbastanza per il mio computer per finire di creare il file ZIP, ma non è un buon codice imo.Come controllare quando Shell32.Folder.CopyHere() è terminato
Qualche idea?
Ulteriori informazioni/codice possono essere forniti se necessario.
+1 cercato di trovare qualcosa, ma trovato nulla. Solo una nota. Aggiungi qualche misura di sicurezza per interrompere quel loop se la tua copia impiega troppo tempo. (Ad esempio i percorsi di rete non disponibili) – Steve
Questa soluzione funziona su Windows 8 ma si attiva prematuramente su Windows 7. Qualche idea? –
Utilizzando Excel VBA, è necessario 1. Copiare un file di testo sul file zip 2. Ottenere il flusso di byte dello zip per un'ulteriore elaborazione. 3. Elimina testo e file zip. Poiché il codice ci dà errori insoliti e irregolari (sempre relativi ai percorsi di file/percorsi di file zip), abbiamo estratto il codice per 1 e 3 in un altro ambiente di test e lo abbiamo ripetuto più volte. Qui abbiamo implementato la soluzione FileInUse ma in qualche modo la funzione continua a restituire false e le eliminazioni non vengono eseguite affatto. – sidnc86