aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packer/src/main.rs7
-rw-r--r--unpacker/src/main.rs2
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];