]> git.proxmox.com Git - pxar.git/blame - examples/randaccess.rs
fix example
[pxar.git] / examples / randaccess.rs
CommitLineData
29c17fc0
WB
1use std::sync::Arc;
2
6cd4f635
WB
3use pxar::accessor::Accessor;
4
5fn main() {
6 let mut args = std::env::args_os().skip(1);
7
8 let file = args.next().expect("expected a file name");
29c17fc0
WB
9 let file = std::fs::File::open(file).expect("failed to open file");
10 let file = Arc::new(file);
6cd4f635 11
5cf335be
WB
12 let accessor = Accessor::from_file_ref(file).expect("failed to open file");
13 let dir = accessor
29c17fc0 14 .open_root_ref()
6cd4f635
WB
15 .expect("failed to open archive root directory");
16 for i in dir.decode_full().expect("failed to access root directory") {
17 println!("{:#?}", i.expect("failed to parse entry").path());
18 }
19
20 let da = dir
21 .lookup("da")
22 .expect("error looking up da/")
23 .expect("failed to lookup da/");
24 dir.lookup("db").expect("failed to lookup db");
25 dir.lookup("root1.txt").expect("failed to lookup root1.txt");
26 dir.lookup("root2.txt").expect("failed to lookup root2.txt");
27
28 println!("{:?}", da.entry());
29 let da = da.enter_directory().expect("failed to enter /da directory");
30 for i in da.decode_full().expect("failed to access /da directory") {
31 println!(
32 " ==> {:#?}",
33 i.expect("failed to parse /da file entry").path()
34 );
35 }
36
37 for i in dir.read_dir() {
38 let i = i.expect("failed to read directory entry");
39 println!("read_dir => {:?}", i.file_name());
40 }
6cd4f635 41}