Получить сетевой путь к зашаренному файлу по локальному пути 2



Оформил: DeeCo

 function GetUNCName(const LocalPath: string): string;
 var
   BufferSize: DWord;
   DummyBuffer: Byte;
   Buffer: Pointer;
   Error: DWord;
 begin
   BufferSize := 1;
   WNetGetUniversalName(PChar(LocalPath), UNIVERSAL_NAME_INFO_LEVEL, @DummyBuffer, BufferSize);
   Buffer := AllocMem(BufferSize);
   try
     Error := WNetGetUniversalName(PChar(LocalPath), UNIVERSAL_NAME_INFO_LEVEL, Buffer, BufferSize);
     if Error <> NO_ERROR then
       begin
         SetLastError(Error);
         RaiseLastWin32Error;
       end;
     Result := PUniversalNameInfo(Buffer)^.lpUniversalName
   finally
     FreeMem(Buffer);
   end;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
  Label1.Caption := GetUNCName('y:\xyz\')
 end;




Похожие по теме исходники

A Star (нахождение кратчайшего пути)

Нахождение кратчайшего пути

Дейкстра: поиск кратчайшего пути