PDA

Ver la Versión Completa : FileExists no busca en unidad de red


rruffino
24-10-2023, 17:28:29
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.

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