C # Suppression d’un fichier .ZIP après la décompression

J’utilise Ionic.Zip.dll de la bibliothèque DotNetZip et j’essaie de supprimer le fichier ZIP une fois la décompression terminée, mais je ne parviens pas à le faire.

Voici le code que j’ai actuellement:

using (ZipFile zip = ZipFile.Read(nextVersion + ".zip")) { zip.ExtractAll(Directory.GetCurrentDirectory(), ExtractExistingFileAction.OverwriteSilently); try { File.Delete(nextVersion + ".zip"); } catch (Exception) { MessageBox.Show("Could not delete ZIP!"); Environment.Exit(1); } } 

Qu’est-ce que je fais mal ici?

Vous obtenez l’exception parce que le fichier est toujours ouvert lorsque vous essayez de le supprimer. Déplacez le File.Delete à après le bloc using .

Essaye ça?

 try { using (ZipFile zip = ZipFile.Read(nextVersion + ".zip")) { zip.ExtractAll(Directory.GetCurrentDirectory(), ExtractExistingFileAction.OverwriteSilently); } File.Delete(nextVersion + ".zip"); } catch (Exception) { MessageBox.Show("Could not delete ZIP!"); Environment.Exit(1); } 

Oui! J’ai la même réponse que Richard Schneider. Le fichier zip est toujours utilisé par le fil actuel, vous devez d’abord le fermer.

Essaye ça

  using (ZipFile zip = ZipFile.Read(nextVersion + ".zip")) { zip.ExtractAll(Directory.GetCurrentDirectory(), ExtractExistingFileAction.OverwriteSilently); zip.Dispose(); try { File.Delete(nextVersion + ".zip"); } catch (Exception) { MessageBox.Show("Could not delete ZIP!"); Environment.Exit(1); } } 

Déplacez File.Delete à l’extérieur en utilisant des crochets en utilisant (ZipFile zip = ZipFile.Read (nextVersion + “.zip”))