Finished the algorithm for packing and unpacking files
This commit is contained in:
parent
58b6314dec
commit
cec2ad2c62
@ -53,7 +53,7 @@ fn pack(input: String, output: String) {
|
|||||||
|
|
||||||
for (index, item) in list.iter().enumerate() {
|
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 file = File::open(path).unwrap();
|
||||||
let metadata = file.metadata().unwrap();
|
let metadata = file.metadata().unwrap();
|
||||||
|
|
||||||
@ -138,6 +138,11 @@ fn pack(input: String, output: String) {
|
|||||||
list_buffer.extend(element_buffer);
|
list_buffer.extend(element_buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Выравнивание буфера
|
||||||
|
while content_buffer.len() % 8 != 0 {
|
||||||
|
content_buffer.push(0);
|
||||||
|
}
|
||||||
|
|
||||||
let mut header_buffer: Vec<u8> = Vec::new();
|
let mut header_buffer: Vec<u8> = Vec::new();
|
||||||
|
|
||||||
// Пишем первый тип файла
|
// Пишем первый тип файла
|
||||||
|
@ -102,7 +102,7 @@ fn unpack(input: String, output: String) {
|
|||||||
|
|
||||||
// Распаковываем файлы в директорию
|
// Распаковываем файлы в директорию
|
||||||
for element in &list {
|
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 = File::create(path).unwrap();
|
||||||
|
|
||||||
let mut file_buffer = vec![0u8; element.size as usize];
|
let mut file_buffer = vec![0u8; element.size as usize];
|
||||||
|
Loading…
Reference in New Issue
Block a user