Beispiel #1
0
 /*
  * Спробувати змінити диск, тобто оновити змінну 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;
 }
Beispiel #2
0
 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;
     }
 }