Mark files as directories when compressing to zip regardless if they're empty or not

This commit is contained in:
Nbiba Bedis 2021-12-14 09:17:59 +01:00
parent 35a158ec63
commit 40bb56bf79

View File

@ -14,10 +14,7 @@ use crate::{
error::FinalError, error::FinalError,
info, info,
list::FileInArchive, list::FileInArchive,
utils::{ utils::{self, cd_into_same_dir_as, concatenate_os_str_list, get_invalid_utf8_paths, strip_cur_dir, to_utf, Bytes},
self, cd_into_same_dir_as, concatenate_os_str_list, dir_is_empty, get_invalid_utf8_paths, strip_cur_dir,
to_utf, Bytes,
},
}; };
/// Unpacks the archive given by `archive` into the folder given by `output_folder`. /// Unpacks the archive given by `archive` into the folder given by `output_folder`.
@ -136,10 +133,7 @@ where
info!(@display_handle, inaccessible, "Compressing '{}'.", to_utf(path)); info!(@display_handle, inaccessible, "Compressing '{}'.", to_utf(path));
if path.is_dir() { if path.is_dir() {
if dir_is_empty(path) {
writer.add_directory(path.to_str().unwrap().to_owned(), options)?; writer.add_directory(path.to_str().unwrap().to_owned(), options)?;
}
// If a dir has files, the files are responsible for creating them.
} else { } else {
writer.start_file(path.to_str().unwrap().to_owned(), options)?; writer.start_file(path.to_str().unwrap().to_owned(), options)?;
let file_bytes = match fs::read(entry.path()) { let file_bytes = match fs::read(entry.path()) {