/* * Спробувати змінити диск, тобто оновити змінну OpenedElement. * У разі неможливості зміни диску буде показане відповідне повідомлення, * стан змінної OpenedElement зберігається. */ public bool SetDisk(List<Disk> disks) { IFieldElement openedElement = null; foreach(Disk disk in disks) { DriveInfo drive = new DriveInfo(disk.Name); if (drive.IsReady) { openedElement = new Disk(drive.Name, drive.Name, drive.DriveType, openedElement); break; } } if (openedElement == null) { DialogResult msgboxID = MessageView.NoAvaliableDisksMessage(); if (msgboxID == DialogResult.Retry) return SetDisk(disks); return false; } if (UpdateField(openedElement)) { OpenedElement = openedElement; return true; } return false; }
public void GoPath(string path) { if (string.IsNullOrEmpty(path) || OpenedElement.Path == path) return; if(Path.GetPathRoot(path) == path && (new DriveInfo(path).IsReady)) { var openedDriveInfo = new DriveInfo(path); var openedElement = new Disk(openedDriveInfo.Name, openedDriveInfo.Name, openedDriveInfo.DriveType, OpenedElement); if (UpdateField(openedElement)) OpenedElement = openedElement; } else if (Directory.Exists(path)) { var openedDirectoryInfo = new DirectoryInfo(path); var openedElement = new Folder(openedDirectoryInfo.Name, openedDirectoryInfo.FullName, OpenedElement); if (UpdateField(openedElement)) OpenedElement = openedElement; } else if(System.IO.File.Exists(path)) { var openedFileInfo = new FileInfo(path); var openedElement = new File( openedFileInfo.Name, openedFileInfo.FullName, openedFileInfo.Extension, openedFileInfo.Length, OpenedElement); if (UpdateField(openedElement)) OpenedElement = openedElement; } }