Fixed moving dirs on windows
This commit is contained in:
parent
be5fefe772
commit
3280f071b1
@ -139,7 +139,9 @@ fn file_exists(path: &Path) -> bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn upgrade_key_location(from: &PathBuf, to: &PathBuf) {
|
pub fn upgrade_key_location(from: &PathBuf, to: &PathBuf) {
|
||||||
match fs::create_dir_all(to).and_then(|()| fs::read_dir(from)) {
|
let mut parent = to.clone();
|
||||||
|
parent.pop();
|
||||||
|
match fs::create_dir_all(&parent).and_then(|()| fs::read_dir(from)) {
|
||||||
Ok(entries) => {
|
Ok(entries) => {
|
||||||
let files: Vec<_> = entries.filter_map(|f| f.ok().and_then(|f| if f.file_type().ok().map_or(false, |f| f.is_file()) { f.file_name().to_str().map(|s| s.to_owned()) } else { None })).collect();
|
let files: Vec<_> = entries.filter_map(|f| f.ok().and_then(|f| if f.file_type().ok().map_or(false, |f| f.is_file()) { f.file_name().to_str().map(|s| s.to_owned()) } else { None })).collect();
|
||||||
let mut num: usize = 0;
|
let mut num: usize = 0;
|
||||||
@ -171,8 +173,10 @@ pub fn upgrade_key_location(from: &PathBuf, to: &PathBuf) {
|
|||||||
fn upgrade_dir_location(source: &PathBuf, dest: &PathBuf) {
|
fn upgrade_dir_location(source: &PathBuf, dest: &PathBuf) {
|
||||||
if file_exists(&source) {
|
if file_exists(&source) {
|
||||||
if !file_exists(&dest) {
|
if !file_exists(&dest) {
|
||||||
if let Err(e) = fs::create_dir_all(&dest).and_then(|()| fs::rename(&source, &dest)) {
|
let mut parent = dest.clone();
|
||||||
debug!("Skipped path {:?}:{:?}", dest, e);
|
parent.pop();
|
||||||
|
if let Err(e) = fs::create_dir_all(&parent).and_then(|()| fs::rename(&source, &dest)) {
|
||||||
|
debug!("Skipped path {:?} -> {:?} :{:?}", source, dest, e);
|
||||||
} else {
|
} else {
|
||||||
info!("Moved {} to {}", source.to_string_lossy(), dest.to_string_lossy());
|
info!("Moved {} to {}", source.to_string_lossy(), dest.to_string_lossy());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user