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”))