Ver Mensaje Individual
  #7  
Antiguo 23-06-2023
lucho6007 lucho6007 is offline
Miembro
 
Registrado: ene 2009
Ubicación: Junín, pcia de BsAs, Argentina
Posts: 74
Reputación: 16
lucho6007 Va por buen camino
Pasos UNC

Hola a todos!
Supongo que el problema debe ser que la ubicación del archivo no está disponible para los dispositivos.
¿Si usas el paso UNC funciona? Esto es "\\Servidor\Directorio\Archivo.ext".
En caso que no te funcione, tenés que tener compartido algún directorio que contenga el archivo.


La función que te devuelve el paso UNC es ExpandUNCFileName, o bien podés usar la API de Windows:
Código Delphi [-]

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;


un ejemplo de llamada es:
Código Delphi [-]
Label1.Caption := GetUNCName('y:\xyz\');


¡Espero te sirva!
Responder Con Cita