fix(archive): handle errors for unsupported formats

Handle errors for unsupported formats in RAR and 7z archives by returning appropriate error messages.
This commit is contained in:
ttyS3 2024-09-06 15:02:09 +00:00 committed by João Marcos
parent bafbd83bd7
commit 7e830d9f53
2 changed files with 10 additions and 7 deletions

View File

@ -53,13 +53,16 @@ pub fn list_archive(
Some(password) => Archive::with_password(archive_path, password),
None => Archive::new(archive_path),
};
archive.open_for_listing().expect("cannot open archive").map(|item| {
let item = item?;
let is_dir = item.is_directory();
let path = item.filename;
match archive.open_for_listing() {
Ok(iter) => iter.map(|item| {
let item = item?;
let is_dir = item.is_directory();
let path = item.filename;
Ok(FileInArchive { path, is_dir })
})
Ok(FileInArchive { path, is_dir })
}).collect::<Vec<_>>().into_iter(),
Err(e) => vec![Err(Error::UnsupportedFormat {reason:e.to_string()})].into_iter(),
}
}
pub fn no_compression() -> Error {

View File

@ -187,7 +187,7 @@ pub fn list_archive(
if let Err(e) = reader {
return vec![Err(Error::IoError {reason:e.to_string()})].into_iter();
}
let reader = reader.unwrap();
let mut files = Vec::new();