Fix included/excluded files which contains commas (#195)
This commit is contained in:
parent
ff85453394
commit
7992ba30de
|
@ -180,8 +180,8 @@ pub struct ExcludedDirectories {
|
|||
|
||||
#[derive(Debug, StructOpt)]
|
||||
pub struct ExcludedItems {
|
||||
#[structopt(short = "E", long, parse(from_os_str), help = "Excluded item(s)", long_help = "List of excluded item(s) which contains * wildcard(may be slow, so use -e where possible)")]
|
||||
pub excluded_items: Vec<PathBuf>,
|
||||
#[structopt(short = "E", long, help = "Excluded item(s)", long_help = "List of excluded item(s) which contains * wildcard(may be slow, so use -e where possible)")]
|
||||
pub excluded_items: Vec<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, StructOpt)]
|
||||
|
|
|
@ -17,14 +17,9 @@ use czkawka_core::{
|
|||
temporary::{self, Temporary},
|
||||
zeroed::{self, ZeroedFiles},
|
||||
};
|
||||
use std::{path::PathBuf, process};
|
||||
use std::process;
|
||||
use structopt::StructOpt;
|
||||
|
||||
fn path_list_to_str(path_list: Vec<PathBuf>) -> String {
|
||||
let path_list: Vec<String> = path_list.into_iter().filter_map(|a| a.into_os_string().into_string().ok()).collect();
|
||||
path_list.join(",")
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let command = Commands::from_args();
|
||||
|
||||
|
@ -45,9 +40,9 @@ fn main() {
|
|||
} => {
|
||||
let mut df = DuplicateFinder::new();
|
||||
|
||||
df.set_included_directory(path_list_to_str(directories.directories));
|
||||
df.set_excluded_directory(path_list_to_str(excluded_directories.excluded_directories));
|
||||
df.set_excluded_items(path_list_to_str(excluded_items.excluded_items));
|
||||
df.set_included_directory(directories.directories);
|
||||
df.set_excluded_directory(excluded_directories.excluded_directories);
|
||||
df.set_excluded_items(excluded_items.excluded_items);
|
||||
df.set_minimal_file_size(minimal_file_size);
|
||||
df.set_allowed_extensions(allowed_extensions.allowed_extensions.join(","));
|
||||
df.set_check_method(search_method);
|
||||
|
@ -76,9 +71,9 @@ fn main() {
|
|||
} => {
|
||||
let mut ef = EmptyFolder::new();
|
||||
|
||||
ef.set_included_directory(path_list_to_str(directories.directories));
|
||||
ef.set_excluded_directory(path_list_to_str(excluded_directories.excluded_directories));
|
||||
ef.set_excluded_items(path_list_to_str(excluded_items.excluded_items));
|
||||
ef.set_included_directory(directories.directories);
|
||||
ef.set_excluded_directory(excluded_directories.excluded_directories);
|
||||
ef.set_excluded_items(excluded_items.excluded_items);
|
||||
ef.set_delete_folder(delete_folders);
|
||||
|
||||
ef.find_empty_folders(None, None);
|
||||
|
@ -106,9 +101,9 @@ fn main() {
|
|||
} => {
|
||||
let mut bf = BigFile::new();
|
||||
|
||||
bf.set_included_directory(path_list_to_str(directories.directories));
|
||||
bf.set_excluded_directory(path_list_to_str(excluded_directories.excluded_directories));
|
||||
bf.set_excluded_items(path_list_to_str(excluded_items.excluded_items));
|
||||
bf.set_included_directory(directories.directories);
|
||||
bf.set_excluded_directory(excluded_directories.excluded_directories);
|
||||
bf.set_excluded_items(excluded_items.excluded_items);
|
||||
bf.set_allowed_extensions(allowed_extensions.allowed_extensions.join(","));
|
||||
bf.set_number_of_files_to_check(number_of_files);
|
||||
bf.set_recursive_search(!not_recursive.not_recursive);
|
||||
|
@ -140,9 +135,9 @@ fn main() {
|
|||
} => {
|
||||
let mut ef = EmptyFiles::new();
|
||||
|
||||
ef.set_included_directory(path_list_to_str(directories.directories));
|
||||
ef.set_excluded_directory(path_list_to_str(excluded_directories.excluded_directories));
|
||||
ef.set_excluded_items(path_list_to_str(excluded_items.excluded_items));
|
||||
ef.set_included_directory(directories.directories);
|
||||
ef.set_excluded_directory(excluded_directories.excluded_directories);
|
||||
ef.set_excluded_items(excluded_items.excluded_items);
|
||||
ef.set_allowed_extensions(allowed_extensions.allowed_extensions.join(","));
|
||||
ef.set_recursive_search(!not_recursive.not_recursive);
|
||||
|
||||
|
@ -173,9 +168,9 @@ fn main() {
|
|||
} => {
|
||||
let mut tf = Temporary::new();
|
||||
|
||||
tf.set_included_directory(path_list_to_str(directories.directories));
|
||||
tf.set_excluded_directory(path_list_to_str(excluded_directories.excluded_directories));
|
||||
tf.set_excluded_items(path_list_to_str(excluded_items.excluded_items));
|
||||
tf.set_included_directory(directories.directories);
|
||||
tf.set_excluded_directory(excluded_directories.excluded_directories);
|
||||
tf.set_excluded_items(excluded_items.excluded_items);
|
||||
tf.set_recursive_search(!not_recursive.not_recursive);
|
||||
|
||||
if delete_files {
|
||||
|
@ -206,9 +201,9 @@ fn main() {
|
|||
} => {
|
||||
let mut sf = SimilarImages::new();
|
||||
|
||||
sf.set_included_directory(path_list_to_str(directories.directories));
|
||||
sf.set_excluded_directory(path_list_to_str(excluded_directories.excluded_directories));
|
||||
sf.set_excluded_items(path_list_to_str(excluded_items.excluded_items));
|
||||
sf.set_included_directory(directories.directories);
|
||||
sf.set_excluded_directory(excluded_directories.excluded_directories);
|
||||
sf.set_excluded_items(excluded_items.excluded_items);
|
||||
sf.set_minimal_file_size(minimal_file_size);
|
||||
sf.set_recursive_search(!not_recursive.not_recursive);
|
||||
sf.set_similarity(similarity);
|
||||
|
@ -238,9 +233,9 @@ fn main() {
|
|||
} => {
|
||||
let mut zf = ZeroedFiles::new();
|
||||
|
||||
zf.set_included_directory(path_list_to_str(directories.directories));
|
||||
zf.set_excluded_directory(path_list_to_str(excluded_directories.excluded_directories));
|
||||
zf.set_excluded_items(path_list_to_str(excluded_items.excluded_items));
|
||||
zf.set_included_directory(directories.directories);
|
||||
zf.set_excluded_directory(excluded_directories.excluded_directories);
|
||||
zf.set_excluded_items(excluded_items.excluded_items);
|
||||
zf.set_allowed_extensions(allowed_extensions.allowed_extensions.join(","));
|
||||
zf.set_minimal_file_size(minimal_file_size);
|
||||
zf.set_recursive_search(!not_recursive.not_recursive);
|
||||
|
@ -274,9 +269,9 @@ fn main() {
|
|||
} => {
|
||||
let mut mf = SameMusic::new();
|
||||
|
||||
mf.set_included_directory(path_list_to_str(directories.directories));
|
||||
mf.set_excluded_directory(path_list_to_str(excluded_directories.excluded_directories));
|
||||
mf.set_excluded_items(path_list_to_str(excluded_items.excluded_items));
|
||||
mf.set_included_directory(directories.directories);
|
||||
mf.set_excluded_directory(excluded_directories.excluded_directories);
|
||||
mf.set_excluded_items(excluded_items.excluded_items);
|
||||
mf.set_minimal_file_size(minimal_file_size);
|
||||
mf.set_recursive_search(!not_recursive.not_recursive);
|
||||
mf.set_music_similarity(music_similarity);
|
||||
|
@ -309,9 +304,9 @@ fn main() {
|
|||
} => {
|
||||
let mut ifs = InvalidSymlinks::new();
|
||||
|
||||
ifs.set_included_directory(path_list_to_str(directories.directories));
|
||||
ifs.set_excluded_directory(path_list_to_str(excluded_directories.excluded_directories));
|
||||
ifs.set_excluded_items(path_list_to_str(excluded_items.excluded_items));
|
||||
ifs.set_included_directory(directories.directories);
|
||||
ifs.set_excluded_directory(excluded_directories.excluded_directories);
|
||||
ifs.set_excluded_items(excluded_items.excluded_items);
|
||||
ifs.set_allowed_extensions(allowed_extensions.allowed_extensions.join(","));
|
||||
ifs.set_recursive_search(!not_recursive.not_recursive);
|
||||
if delete_files {
|
||||
|
|
|
@ -276,7 +276,7 @@ impl BigFile {
|
|||
|
||||
/// Setting excluded items which needs to contains * wildcard
|
||||
/// Are a lot of slower than absolute path, so it should be used to heavy
|
||||
pub fn set_excluded_items(&mut self, excluded_items: String) {
|
||||
pub fn set_excluded_items(&mut self, excluded_items: Vec<String>) {
|
||||
self.excluded_items.set_excluded_items(excluded_items, &mut self.text_messages);
|
||||
}
|
||||
|
||||
|
@ -286,12 +286,12 @@ impl BigFile {
|
|||
}
|
||||
|
||||
/// Setting included directories, at least one must be provided
|
||||
pub fn set_included_directory(&mut self, included_directory: String) {
|
||||
pub fn set_included_directory(&mut self, included_directory: Vec<PathBuf>) {
|
||||
self.directories.set_included_directory(included_directory, &mut self.text_messages);
|
||||
}
|
||||
|
||||
/// Setting absolute path to exclude
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: String) {
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: Vec<PathBuf>) {
|
||||
self.directories.set_excluded_directory(excluded_directory, &mut self.text_messages);
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ impl Directories {
|
|||
}
|
||||
|
||||
/// Setting included directories, at least one must be provided
|
||||
pub fn set_included_directory(&mut self, included_directory: String, text_messages: &mut Messages) -> bool {
|
||||
pub fn set_included_directory(&mut self, included_directory: Vec<PathBuf>, text_messages: &mut Messages) -> bool {
|
||||
let start_time: SystemTime = SystemTime::now();
|
||||
|
||||
if included_directory.is_empty() {
|
||||
|
@ -22,8 +22,7 @@ impl Directories {
|
|||
return false;
|
||||
}
|
||||
|
||||
let included_directory = included_directory.replace("\"", "");
|
||||
let directories: Vec<_> = included_directory.split(',').map(|dir| dir.trim()).filter(|dir| !dir.is_empty()).map(PathBuf::from).collect();
|
||||
let directories: Vec<PathBuf> = included_directory;
|
||||
|
||||
let mut checked_directories: Vec<PathBuf> = Vec::new();
|
||||
for directory in directories {
|
||||
|
@ -66,15 +65,13 @@ impl Directories {
|
|||
}
|
||||
|
||||
/// Setting absolute path to exclude
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: String, text_messages: &mut Messages) {
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: Vec<PathBuf>, text_messages: &mut Messages) {
|
||||
let start_time: SystemTime = SystemTime::now();
|
||||
if excluded_directory.is_empty() {
|
||||
return;
|
||||
}
|
||||
|
||||
let excluded_directory = excluded_directory.replace("\"", "");
|
||||
|
||||
let directories: Vec<PathBuf> = excluded_directory.split(',').map(|dir| dir.trim()).filter(|dir| !dir.is_empty()).map(PathBuf::from).collect();
|
||||
let directories: Vec<PathBuf> = excluded_directory;
|
||||
|
||||
let mut checked_directories: Vec<PathBuf> = Vec::new();
|
||||
for directory in directories {
|
||||
|
|
|
@ -14,15 +14,14 @@ impl ExcludedItems {
|
|||
}
|
||||
/// Setting excluded items which needs to contains * wildcard
|
||||
/// Are a lot of slower than absolute path, so it should be used to heavy
|
||||
pub fn set_excluded_items(&mut self, mut excluded_items: String, text_messages: &mut Messages) {
|
||||
pub fn set_excluded_items(&mut self, excluded_items: Vec<String>, text_messages: &mut Messages) {
|
||||
let start_time: SystemTime = SystemTime::now();
|
||||
|
||||
if excluded_items.is_empty() {
|
||||
return;
|
||||
}
|
||||
|
||||
excluded_items = excluded_items.replace("\"", "");
|
||||
let expressions: Vec<String> = excluded_items.split(',').map(String::from).collect();
|
||||
let expressions: Vec<String> = excluded_items;
|
||||
let mut checked_expressions: Vec<String> = Vec::new();
|
||||
|
||||
for expression in expressions {
|
||||
|
|
|
@ -202,18 +202,18 @@ impl DuplicateFinder {
|
|||
self.recursive_search = recursive_search;
|
||||
}
|
||||
|
||||
pub fn set_included_directory(&mut self, included_directory: String) -> bool {
|
||||
pub fn set_included_directory(&mut self, included_directory: Vec<PathBuf>) -> bool {
|
||||
self.directories.set_included_directory(included_directory, &mut self.text_messages)
|
||||
}
|
||||
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: String) {
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: Vec<PathBuf>) {
|
||||
self.directories.set_excluded_directory(excluded_directory, &mut self.text_messages);
|
||||
}
|
||||
pub fn set_allowed_extensions(&mut self, allowed_extensions: String) {
|
||||
self.allowed_extensions.set_allowed_extensions(allowed_extensions, &mut self.text_messages);
|
||||
}
|
||||
|
||||
pub fn set_excluded_items(&mut self, excluded_items: String) {
|
||||
pub fn set_excluded_items(&mut self, excluded_items: Vec<String>) {
|
||||
self.excluded_items.set_excluded_items(excluded_items, &mut self.text_messages);
|
||||
}
|
||||
|
||||
|
|
|
@ -111,18 +111,18 @@ impl EmptyFiles {
|
|||
self.recursive_search = recursive_search;
|
||||
}
|
||||
|
||||
pub fn set_included_directory(&mut self, included_directory: String) -> bool {
|
||||
pub fn set_included_directory(&mut self, included_directory: Vec<PathBuf>) -> bool {
|
||||
self.directories.set_included_directory(included_directory, &mut self.text_messages)
|
||||
}
|
||||
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: String) {
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: Vec<PathBuf>) {
|
||||
self.directories.set_excluded_directory(excluded_directory, &mut self.text_messages);
|
||||
}
|
||||
pub fn set_allowed_extensions(&mut self, allowed_extensions: String) {
|
||||
self.allowed_extensions.set_allowed_extensions(allowed_extensions, &mut self.text_messages);
|
||||
}
|
||||
|
||||
pub fn set_excluded_items(&mut self, excluded_items: String) {
|
||||
pub fn set_excluded_items(&mut self, excluded_items: Vec<String>) {
|
||||
self.excluded_items.set_excluded_items(excluded_items, &mut self.text_messages);
|
||||
}
|
||||
|
||||
|
|
|
@ -89,11 +89,11 @@ impl EmptyFolder {
|
|||
&self.information
|
||||
}
|
||||
|
||||
pub fn set_excluded_items(&mut self, excluded_items: String) {
|
||||
pub fn set_excluded_items(&mut self, excluded_items: Vec<String>) {
|
||||
self.excluded_items.set_excluded_items(excluded_items, &mut self.text_messages);
|
||||
}
|
||||
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: String) {
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: Vec<PathBuf>) {
|
||||
self.directories.set_excluded_directory(excluded_directory, &mut self.text_messages);
|
||||
}
|
||||
/// Public function used by CLI to search for empty folders
|
||||
|
@ -283,7 +283,7 @@ impl EmptyFolder {
|
|||
}
|
||||
|
||||
/// Set included dir which needs to be relative, exists etc.
|
||||
pub fn set_included_directory(&mut self, included_directory: String) {
|
||||
pub fn set_included_directory(&mut self, included_directory: Vec<PathBuf>) {
|
||||
self.directories.set_included_directory(included_directory, &mut self.text_messages);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -120,18 +120,18 @@ impl InvalidSymlinks {
|
|||
self.recursive_search = recursive_search;
|
||||
}
|
||||
|
||||
pub fn set_included_directory(&mut self, included_directory: String) -> bool {
|
||||
pub fn set_included_directory(&mut self, included_directory: Vec<PathBuf>) -> bool {
|
||||
self.directories.set_included_directory(included_directory, &mut self.text_messages)
|
||||
}
|
||||
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: String) {
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: Vec<PathBuf>) {
|
||||
self.directories.set_excluded_directory(excluded_directory, &mut self.text_messages);
|
||||
}
|
||||
pub fn set_allowed_extensions(&mut self, allowed_extensions: String) {
|
||||
self.allowed_extensions.set_allowed_extensions(allowed_extensions, &mut self.text_messages);
|
||||
}
|
||||
|
||||
pub fn set_excluded_items(&mut self, excluded_items: String) {
|
||||
pub fn set_excluded_items(&mut self, excluded_items: Vec<String>) {
|
||||
self.excluded_items.set_excluded_items(excluded_items, &mut self.text_messages);
|
||||
}
|
||||
|
||||
|
|
|
@ -157,15 +157,15 @@ impl SameMusic {
|
|||
self.recursive_search = recursive_search;
|
||||
}
|
||||
|
||||
pub fn set_included_directory(&mut self, included_directory: String) -> bool {
|
||||
pub fn set_included_directory(&mut self, included_directory: Vec<PathBuf>) -> bool {
|
||||
self.directories.set_included_directory(included_directory, &mut self.text_messages)
|
||||
}
|
||||
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: String) {
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: Vec<PathBuf>) {
|
||||
self.directories.set_excluded_directory(excluded_directory, &mut self.text_messages);
|
||||
}
|
||||
|
||||
pub fn set_excluded_items(&mut self, excluded_items: String) {
|
||||
pub fn set_excluded_items(&mut self, excluded_items: Vec<String>) {
|
||||
self.excluded_items.set_excluded_items(excluded_items, &mut self.text_messages);
|
||||
}
|
||||
|
||||
|
|
|
@ -531,15 +531,15 @@ impl SimilarImages {
|
|||
}
|
||||
|
||||
/// Set included dir which needs to be relative, exists etc.
|
||||
pub fn set_included_directory(&mut self, included_directory: String) {
|
||||
pub fn set_included_directory(&mut self, included_directory: Vec<PathBuf>) {
|
||||
self.directories.set_included_directory(included_directory, &mut self.text_messages);
|
||||
}
|
||||
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: String) {
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: Vec<PathBuf>) {
|
||||
self.directories.set_excluded_directory(excluded_directory, &mut self.text_messages);
|
||||
}
|
||||
|
||||
pub fn set_excluded_items(&mut self, excluded_items: String) {
|
||||
pub fn set_excluded_items(&mut self, excluded_items: Vec<String>) {
|
||||
self.excluded_items.set_excluded_items(excluded_items, &mut self.text_messages);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -106,15 +106,15 @@ impl Temporary {
|
|||
self.recursive_search = recursive_search;
|
||||
}
|
||||
|
||||
pub fn set_included_directory(&mut self, included_directory: String) -> bool {
|
||||
pub fn set_included_directory(&mut self, included_directory: Vec<PathBuf>) -> bool {
|
||||
self.directories.set_included_directory(included_directory, &mut self.text_messages)
|
||||
}
|
||||
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: String) {
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: Vec<PathBuf>) {
|
||||
self.directories.set_excluded_directory(excluded_directory, &mut self.text_messages);
|
||||
}
|
||||
|
||||
pub fn set_excluded_items(&mut self, excluded_items: String) {
|
||||
pub fn set_excluded_items(&mut self, excluded_items: Vec<String>) {
|
||||
self.excluded_items.set_excluded_items(excluded_items, &mut self.text_messages);
|
||||
}
|
||||
|
||||
|
|
|
@ -128,18 +128,18 @@ impl ZeroedFiles {
|
|||
self.recursive_search = recursive_search;
|
||||
}
|
||||
|
||||
pub fn set_included_directory(&mut self, included_directory: String) -> bool {
|
||||
pub fn set_included_directory(&mut self, included_directory: Vec<PathBuf>) -> bool {
|
||||
self.directories.set_included_directory(included_directory, &mut self.text_messages)
|
||||
}
|
||||
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: String) {
|
||||
pub fn set_excluded_directory(&mut self, excluded_directory: Vec<PathBuf>) {
|
||||
self.directories.set_excluded_directory(excluded_directory, &mut self.text_messages);
|
||||
}
|
||||
pub fn set_allowed_extensions(&mut self, allowed_extensions: String) {
|
||||
self.allowed_extensions.set_allowed_extensions(allowed_extensions, &mut self.text_messages);
|
||||
}
|
||||
|
||||
pub fn set_excluded_items(&mut self, excluded_items: String) {
|
||||
pub fn set_excluded_items(&mut self, excluded_items: Vec<String>) {
|
||||
self.excluded_items.set_excluded_items(excluded_items, &mut self.text_messages);
|
||||
}
|
||||
|
||||
|
|
|
@ -83,10 +83,10 @@ pub fn connect_button_search(
|
|||
let image_preview_similar_images = gui_data.main_notebook.image_preview_similar_images.clone();
|
||||
|
||||
buttons_search_clone.connect_clicked(move |_| {
|
||||
let included_directories = get_string_from_list_store(&tree_view_included_directories);
|
||||
let excluded_directories = get_string_from_list_store(&tree_view_excluded_directories);
|
||||
let included_directories = get_path_buf_from_vector_of_strings(get_string_from_list_store(&tree_view_included_directories));
|
||||
let excluded_directories = get_path_buf_from_vector_of_strings(get_string_from_list_store(&tree_view_excluded_directories));
|
||||
let recursive_search = check_button_recursive.get_active();
|
||||
let excluded_items = entry_excluded_items.get_text().as_str().to_string();
|
||||
let excluded_items = entry_excluded_items.get_text().as_str().to_string().split(',').map(|e| e.to_string()).collect::<Vec<String>>();
|
||||
let allowed_extensions = entry_allowed_extensions.get_text().as_str().to_string();
|
||||
|
||||
let show_dialog = Arc::new(AtomicBool::new(true));
|
||||
|
|
|
@ -12,7 +12,7 @@ use czkawka_core::zeroed::ZeroedFiles;
|
|||
use gtk::prelude::*;
|
||||
use gtk::{ListStore, TextView};
|
||||
use std::collections::HashMap;
|
||||
use std::path::Path;
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
pub enum Message {
|
||||
Duplicates(DuplicateFinder),
|
||||
|
@ -110,27 +110,28 @@ pub const HEADER_ROW_COLOR: &str = "#272727";
|
|||
//pub const MAIN_ROW_COLOR: &str = "#f4f434"; // TEST
|
||||
//pub const HEADER_ROW_COLOR: &str = "#010101"; // TEST
|
||||
|
||||
pub fn get_string_from_list_store(tree_view: >k::TreeView) -> String {
|
||||
pub fn get_string_from_list_store(tree_view: >k::TreeView) -> Vec<String> {
|
||||
let list_store: gtk::ListStore = get_list_store(&tree_view);
|
||||
let mut first: bool = true;
|
||||
|
||||
let mut return_string: String = "".to_string();
|
||||
let mut string_vector: Vec<String> = Vec::new();
|
||||
|
||||
let tree_iter = match list_store.get_iter_first() {
|
||||
Some(t) => t,
|
||||
None => return return_string,
|
||||
None => {
|
||||
return string_vector;
|
||||
}
|
||||
};
|
||||
loop {
|
||||
if !first {
|
||||
return_string += ",";
|
||||
} else {
|
||||
first = false;
|
||||
}
|
||||
return_string += list_store.get_value(&tree_iter, 0).get::<String>().unwrap().unwrap().as_str();
|
||||
string_vector.push(list_store.get_value(&tree_iter, 0).get::<String>().unwrap().unwrap());
|
||||
if !list_store.iter_next(&tree_iter) {
|
||||
return return_string;
|
||||
return string_vector;
|
||||
}
|
||||
}
|
||||
}
|
||||
pub fn get_path_buf_from_vector_of_strings(vec_string: Vec<String>) -> Vec<PathBuf> {
|
||||
vec_string.iter().map(PathBuf::from).collect()
|
||||
}
|
||||
|
||||
pub fn split_path(path: &Path) -> (String, String) {
|
||||
match (path.parent(), path.file_name()) {
|
||||
(Some(dir), Some(file)) => (dir.display().to_string(), file.to_string_lossy().into_owned()),
|
||||
|
|
Loading…
Reference in a new issue