/// <summary> /// Создание массива элементов для отображения /// </summary> public void CreateList() { string[] dirs; string[] file; try { dirs = Directory.GetDirectories(start_directory); file = Directory.GetFiles(start_directory); } catch { PrintHead(start_directory); PrintLine.FullLine(); PrintLine.Print("ошибка доступа"); start_directory = Directory.GetParent(start_directory)?.FullName; PrintLine.FullLine(); Console.ReadLine(); Console.Clear(); return; } int first_button = 1; int last_button = 0; if (havecopy) { last_button += 1; } int list_len = dirs.Length + file.Length + first_button + last_button; list = new FileElement[list_len]; list[0] = new FileElement(FileElement.TypeElement.backspace); if (havecopy) { list[list.Length - 1] = new FileElement(FileElement.TypeElement.copylistbutton); } for (int i = 1; i < list.Length - last_button; i++) { if (i - first_button < dirs.Length) { list[i] = new FileElement(dirs[i - first_button]); } else if (i >= dirs.Length + first_button) { list[i] = new FileElement(file[i - dirs.Length - first_button]); } } len_menu = list.Length - 1; }
/// <summary> /// Добавить элемент в массив для копирования /// </summary> /// <param name="file_to_copy"></param> public void AddToCopyList(FileElement file_to_copy) { havecopy = true; if (copylist[copylist.Length - 1] == null) { copylist[copylist.Length - 1] = file_to_copy; } else { Array.Resize(ref copylist, copylist.Length + 1); copylist[copylist.Length - 1] = file_to_copy; } }
/// <summary> /// Проверка что директория существует /// </summary> /// <returns>False если не существует</returns> public bool CheckDir() { if (Directory.Exists(start_directory)) { return(true); } DriveInfo[] alldrive = DriveInfo.GetDrives(); list = new FileElement[alldrive.Length]; for (int i = 0; i < list.Length; i++) { list[i] = new FileElement(FileElement.TypeElement.drive, alldrive[i].Name); } len_menu = list.Length - 1; start_directory = $"Укажите диск"; return(false); }