Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   FileExists no busca en unidad de red (https://www.clubdelphi.com/foros/showthread.php?t=96453)

rruffino 24-10-2023 17:28:29

FileExists no busca en unidad de red
 
Hola, buen día! Tengo una carpeta compartida en la PC, y la conecto como unidad de red (disco Z), al momento de compilar y correr desde delphi, internamente busco un archivo dentro del disco Z, primero me aseguro que este con la funcion FileExists, el tema es que la funcion devuelve falso, y el archivo existe y la ruta esta bien generada porque está hecho de hace bastante. He actualizado la version de Windows del 7 al 10, y ahi comenzó esto..... Ahora, si corro el ejecutable directamente, sin tener delphi abierto, funciona.... no le encuentro el motivo. Gracias!!!!

duilioisola 24-10-2023 18:12:46

Has una prueba básica antes de nada...
Quizás solo te falta una contrabarra o está mal escrito el nombre de la carpeta.

Agrega un TMemo (MDebug) y un TEdit (EDirFileExists) a un formulario.
Código Delphi [-]
procedure TFMPruebas.BFileExistsClick(Sender: TObject);
var
  sr : TSearchRec;
  RegistrosEncontrados : integer;
begin
  inherited;
  // Borro contenido de memo
  MDebug.Lines.Clear;

  // Me aseguro que la direccion termine en "\"
  EDirFileExists.Text := IncludeTrailingPathDelimiter(EDirFileExists.Text);

  // Busco los archivos dentro el directorio 
  RegistrosEncontrados := FindFirst(EDirFileExists.Text + '*.*', faAnyFile, sr);
  try
     // Mientras haya archivos...
     while RegistrosEncontrados = 0 do
     begin
        // Si el archivo no es uno "especial"
        if not ((sr.Name = '.') or (sr.Name = '..')) then
        begin
           // Si es un directorio lo menciono pero no hago nada
           if ((sr.Attr and faDirectory) = faDirectory) then
              MDebug.Lines.Add(format('Directorio: %s', [sr.Name]))
           else
           begin
              // Compruebo funcionamiento de funcion FileExists()
              if FileExists(EDirFileExists.Text + sr.Name) then
                 MDebug.Lines.Add(format('Existe archivo: %s', [EDirFileExists.Text + sr.Name]))
              else
                 MDebug.Lines.Add(format('NO Existe archivo: %s', [EDirFileExists.Text + sr.Name]))
           end;
        end;
        // Busco el siguiente archivo
        RegistrosEncontrados := FindNext(sr);
     end;
  finally
     SysUtils.FindClose(sr);
  end;
end;

pgranados 25-10-2023 00:14:04

Exactamente que no te esta funcionando, yo utilizo \\SERVIDOR\CARPETA\ARCHIVO.TXT
y si lo localiza bien sin problemas


La franja horaria es GMT +2. Ahora son las 08:35:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi