public void Decompress() { if (OsmFile.Extension != ".zip") { return; } DirectoryInfo osmFileDir = new DirectoryInfo(OsmFile.DirectoryName); try { ZipArchive archive = ZipFile.OpenRead(OsmFile.FullName); ZipArchiveEntry entry = archive.Entries[0]; string fileName = string.Format("{0}\\{1}", osmFileDir.FullName, entry.FullName); entry.ExtractToFile(fileName); FileInfo unzippedFile = new FileInfo(fileName); if (unzippedFile.Exists) { archive.Dispose(); archive = null; OsmFile.Delete(); OsmFile = unzippedFile; Zipped = false; } else { throw new Exception("Unable to decompress OSM file."); } } catch (Exception ex) { LogHelper.LogException(ex); } }