31 lines
938 B
Rust
31 lines
938 B
Rust
use gio::prelude::*;
|
|
use std::env;
|
|
|
|
fn main() {
|
|
let uri = env::args().nth(1).expect("no uri provided");
|
|
let file = gio::File::for_uri(&uri);
|
|
for entry_res in file
|
|
.enumerate_children("*", gio::FileQueryInfoFlags::NONE, gio::Cancellable::NONE)
|
|
.unwrap()
|
|
{
|
|
let entry = entry_res.unwrap();
|
|
println!("{:?}", entry.display_name());
|
|
for attribute in entry.list_attributes(None) {
|
|
println!(
|
|
" {:?}: {:?}",
|
|
attribute,
|
|
entry.attribute_as_string(&attribute)
|
|
);
|
|
}
|
|
|
|
//TODO: what is the best way to resolve shortcuts?
|
|
let child = if let Some(target_uri) =
|
|
entry.attribute_string(gio::FILE_ATTRIBUTE_STANDARD_TARGET_URI)
|
|
{
|
|
gio::File::for_uri(&target_uri)
|
|
} else {
|
|
file.child(entry.name())
|
|
};
|
|
println!("{:?}", child.uri());
|
|
}
|
|
}
|