Open qarmin opened 2 years ago
Code used to find such extensions
pub fn mime_check() {
let allowed_extensions = vec![];
let checked_dir = vec!["/home/", "/mnt"];
let collected_files = collect_files(checked_dir, allowed_extensions);
let collected_extensions: Vec<_> = collected_files
.into_iter()
.filter_map(|path| {
let path = Path::new(&path);
if let Some(extension) = path.extension() {
let extension = extension.to_string_lossy().to_string();
let mime_g = mime_guess::from_ext(extension.as_str());
let mime_number = mime_g.iter().count();
if extension == "a" {
println!("{:?}", path);
}
if mime_number == 0 {
return Some(extension);
}
}
None
})
.collect();
let mut btree: HashMap<String, u32> = Default::default();
for i in collected_extensions {
btree.entry(i.clone()).or_insert(0);
*btree.get_mut(&i).unwrap() += 1;
}
let mut new_vec = Vec::new();
for i in btree {
new_vec.push(i);
}
new_vec.sort_by(|(_ext, number), (_ext2, number2)| {
return if number < number2 {
Ordering::Greater
} else {
Ordering::Less
};
});
for (ext, number) in new_vec {
println!("{} - {}", number, ext);
}
}
Below is list of 90 most popular extensions on my OS, that doesn't have any mime type assigned some like
qml
are easy to assign, unlike generic extensionfile
a - file created by compilers o - file created by compiles pyc - compiled python gd - Godot Engine script file qml - QT language ui - interface file(Glade/Cambalache etc.)