diff options
-rw-r--r-- | packer/src/main.rs | 7 | ||||
-rw-r--r-- | unpacker/src/main.rs | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/packer/src/main.rs b/packer/src/main.rs index ae4e02a..a5526e3 100644 --- a/packer/src/main.rs +++ b/packer/src/main.rs @@ -53,7 +53,7 @@ fn pack(input: String, output: String) { for (index, item) in list.iter().enumerate() { // Открываем дескриптор файла - let path = format!("{}/{}", input, item.name); + let path = format!("{}/{}.{}", input, item.name, item.index); let file = File::open(path).unwrap(); let metadata = file.metadata().unwrap(); @@ -138,6 +138,11 @@ fn pack(input: String, output: String) { list_buffer.extend(element_buffer); } + // Выравнивание буфера + while content_buffer.len() % 8 != 0 { + content_buffer.push(0); + } + let mut header_buffer: Vec<u8> = Vec::new(); // Пишем первый тип файла diff --git a/unpacker/src/main.rs b/unpacker/src/main.rs index 9d27385..2a84688 100644 --- a/unpacker/src/main.rs +++ b/unpacker/src/main.rs @@ -102,7 +102,7 @@ fn unpack(input: String, output: String) { // Распаковываем файлы в директорию for element in &list { - let path = format!("{}/{}", output, element.name); + let path = format!("{}/{}.{}", output, element.name, element.index); let mut file = File::create(path).unwrap(); let mut file_buffer = vec![0u8; element.size as usize]; |