From b77106b526930990f51a306fd70cd00856f481e8 Mon Sep 17 00:00:00 2001 From: Igor Tolmachev Date: Fri, 12 Jul 2024 21:40:08 +0900 Subject: Add zstd compression and fix bugs --- src/zip/driver.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src/zip/driver.rs') diff --git a/src/zip/driver.rs b/src/zip/driver.rs index 3793e31..99b409d 100644 --- a/src/zip/driver.rs +++ b/src/zip/driver.rs @@ -5,7 +5,7 @@ use crate::zip::{ BitFlag, CompressionMethod, ZipError, ZipFileInfo, ZipFileReader, ZipFileWriter, ZipResult, }; use chrono::{DateTime, Local, NaiveDate, NaiveDateTime, NaiveTime}; -use std::collections::HashMap as Map; +use std::collections::BTreeMap as Map; use std::fs::File; use std::io::{Read, Seek, SeekFrom, Write}; @@ -105,7 +105,7 @@ impl ArchiveRead for Zip { }; // Read cd records - let mut files = Map::with_capacity(cd_records as usize); + let mut files = Map::new(); io.seek(SeekFrom::Start(cd_pointer))?; let buf = io.read_vec(cd_size as usize)?; @@ -200,6 +200,7 @@ impl ArchiveRead for Zip { ))?; ep += header.size as usize } + // Skip unrecognized header _ => ep += header.size as usize, } } @@ -226,9 +227,7 @@ impl ArchiveRead for Zip { } fn files(&self) -> Vec<&Self::FileInfo> { - let mut files: Vec<&Self::FileInfo> = self.files.values().collect(); - files.sort_by_key(|f| &f.name); - files + self.files.values().collect() } fn get_file_info(&self, name: &str) -> ZipResult<&Self::FileInfo> { -- cgit v1.2.3