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) {
|
||||
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) => {
|
||||
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;
|
||||
@ -171,8 +173,10 @@ pub fn upgrade_key_location(from: &PathBuf, to: &PathBuf) {
|
||||
fn upgrade_dir_location(source: &PathBuf, dest: &PathBuf) {
|
||||
if file_exists(&source) {
|
||||
if !file_exists(&dest) {
|
||||
if let Err(e) = fs::create_dir_all(&dest).and_then(|()| fs::rename(&source, &dest)) {
|
||||
debug!("Skipped path {:?}:{:?}", dest, e);
|
||||
let mut parent = dest.clone();
|
||||
parent.pop();
|
||||
if let Err(e) = fs::create_dir_all(&parent).and_then(|()| fs::rename(&source, &dest)) {
|
||||
debug!("Skipped path {:?} -> {:?} :{:?}", source, dest, e);
|
||||
} else {
|
||||
info!("Moved {} to {}", source.to_string_lossy(), dest.to_string_lossy());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user