c # - Sådan får du drevbogstavet fra et helt navn på drevet

Indlæg af Hanne Mølgaard Plasc

Problem



Hvordan kunne drevbrevet (fx F: \) opnås fra et kendt fuldt navn (hvis det er til stede) for et drev (fx WORKMEMORYSTICK) ved hjælp af C # under Windows?


Selv omvendt ville det være en start.

Bedste reference


Klassen DriveInfo udsætter en metode for at få alle ledige drev (GetDrives), du kan oplyse disse om at matche din givne streng. Noget som følgende burde hjælpe med at få dig der: [4] [5]


DirectoryInfo root;
var drives = DriveInfo.GetDrives();
foreach (var drive in drives)
{
    if (drive.VolumeLabel == label)
    {
        root = drive.RootDirectory;
        break;
    }
}


Som nævnt af abatishchev og ikke først udarbejdet på grund af mine barns tidskrav, er der et potentielt problem, fordi du kun vil matche første -drevet, som har den pågældende etiket, derfor bliver nødt til at redegøre for dette i din logik, hvis dit system kræver det (selvom det afgøres, hvilken af ​​to drev der er det ønskede drev, der er baseret på ingenting, men en ikke-unik streng er ikke bedre end et gæt eller som jeg nævner nedenfor, beder brugeren (hvis dette er input), hvilken en de mente.)

Andre referencer 1


Du kan cykle gennem alle drev og kontrollere navn og volumenlabelegenskaber for DriveInfo-objekt. [6]


Se dette spørgsmål til kodeeksempler (bruges til at få USB-drevbrevet, men du kan nemt tilpasse det):


Hvordan finder du USB-drevbogstav?


Undskyld jeg kan ikke give dig noget kode, men jeg er på en Mac lige nu :)