Mega Code Archive

 
Categories / Delphi / Examples
 

Convert from unc notation to drive letter

The function ExpandUNCFileName function converts a mapped path/file to UNC, but how can this process be reversed? There is no simple function that would do the trick, you have to go through all existing 'remote' drives, look at their UNC name and compare them with the one you are interested in: // by billb@catoctinsoftware.com program P; procedure TForm1.Button1Click(Sender: TObject); const YOURUNCFILENAME = '\\ISS\VOL1\ISS\SHARE\'; var Drive : Char; Drlist : TStringList; Filist : TStringList; I : integer; begin Drlist := TStringList.Create; Filist := TStringList.Create; for Drive := 'a' to 'z' do case GetDriveType(PChar(Drive + ':\')) of DRIVE_REMOTE: begin Filist.Add(expanduncfilename(Drive + ':\')); Drlist.Add(Drive) end end; {......} I := Filist.indexof(YOURUNCFILENAME); if I > -1 then ShowMessage(YOURUNCFILENAME + 'Mapped to drive ' + Drlist[I]); Drlist.Free; Filist.Free end; end.