using System;
using System.IO;
using System.Collections.Generic;

namespace Addison_Wesley.Codebook.Filesystem
{
   public class DriveUtil
   {
      /// <summary>
      /// Liefert eine Liste von DriveInfo-Instanzen für alle Laufwerke,
      /// die einen bestimmten Typ aufweisen
      /// </summary>
      /// <param name="driveType">Der Laufwerktyp</param>
      public static List<DriveInfo> GetDriveInfos(DriveType driveType)
      {
         // Ergebnis-Liste instanzieren
         List<DriveInfo> driveInfos = new List<DriveInfo>();

         // Alle Laufwerke des Systems auslesen
         string[] drives = Environment.GetLogicalDrives();

         // Das zurückgegebene Array durchgehen
         // und den Laufwerk-Typ ermitteln
         foreach (string driveName in drives)
         {
            DriveInfo driveInfo = new DriveInfo(driveName);
            if (driveInfo.DriveType == driveType)
            {
               driveInfos.Add(driveInfo);
            }
         }

         // Die Liste zurückgeben
         return driveInfos;
      }
   }
}
