// -------------------------------------------------------------------------------------------------------------------- // // This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. // // // The drive utilities. // // -------------------------------------------------------------------------------------------------------------------- namespace HandBrakeWPF.Utilities { using System.Collections.Generic; using System.IO; using HandBrakeWPF.Model; /// /// The drive utilities. /// public class DriveUtilities { /// /// Get a list of available DVD drives which are ready and contain DVD content. /// /// A List of Drives with their details public static List GetDrives() { var drives = new List(); DriveInfo[] theCollectionOfDrives = DriveInfo.GetDrives(); int id = 0; foreach (DriveInfo curDrive in theCollectionOfDrives) { if (curDrive.DriveType == DriveType.CDRom && curDrive.IsReady) { if (Directory.Exists(curDrive.RootDirectory + "VIDEO_TS") || Directory.Exists(curDrive.RootDirectory + "BDMV")) { drives.Add( new DriveInformation { Id = id, VolumeLabel = curDrive.VolumeLabel, RootDirectory = curDrive.RootDirectory?.ToString() }); id++; } } } return drives; } public static bool HasMinimumDiskSpace(string destination, long minimumInBytes) { string drive = Path.GetPathRoot(destination); if (!string.IsNullOrEmpty(drive) && !drive.StartsWith("\\")) { DriveInfo c = new DriveInfo(drive); if (c.AvailableFreeSpace < minimumInBytes) { return false; } } return true; } } }