public void Directory_move_to_folder(ListView list_paths, ListView list_files, int selectedIndex)//возвращаемся к конкретной папке { if (selectedIndex >= 0) { while (list_paths.Items.Count - 1 != selectedIndex) { PathBuilder.Dir_up(list_paths);//поднимемся по директории } var new_path = PathBuilder.Get_path(list_paths); if (Directory.Exists(new_path)) { currentDirName = new_path;//установим новую } else { Exit_to_existing_dir(list_paths); } Update_listview_folders(list_files); } else { throw new Exception("Индекс не может быть меньше нуля!"); } }
private void Exit_to_existing_dir(ListView list_paths) //переход к существующей директории от удаленной директории,в которой находился пользователь { Get_all_files(); //дойдем до существующей папки while (PathBuilder.Get_path(list_paths) != currentDirName) { PathBuilder.Dir_up(list_paths); } MessageBox.Show("Часть пути была удалена, так как папки в которых вы находились были удалены!"); }
public void Directory_up(ListView list_view_folders, ListView list_view_path_frames)//выход из каталога на папку выше { if (currentDirName != null && currentDirName != choosen_disk) { PathBuilder.Dir_up(list_view_path_frames);//поднимемся по директории var full_path_up = PathBuilder.Get_path(list_view_path_frames); if (Directory.Exists(full_path_up)) { currentDirName = full_path_up;//установим новую } else { Exit_to_existing_dir(list_view_path_frames); } Update_listview_folders(list_view_folders); } else { ; //мы уже итак в этой директории } }