Programación General > Pascal

 Como Saber Los Archivos De Una Carpeta

(1/1)

Ferdinandum:
Hola,

He hecho un programa q le un fichero de una carpeta determinada. Pero si no existe dicho Fichero la aplicacion casca.

Hay alguna forma de listar el directorio y hacer un control de errores con los archivos existentes??


tx.

Enko:
No recuerdo que haya una funcion similar a Dir de DOS pero hay varias de estas andando por la red, si es lo que necesitas.

Otra solucion seria desactivar temporalmente la verificacion de la entrada/salida y comprobar tu mismo los errores con IOResult.

Para desactivar la verificacion de I/O: {$I-}
Para activar la verificacion de I/O: {$I+}
Nota que {$Letra,+/-} son directivas de compilacion y no comentarios
y luego tenes a la funcion IOResult que es distinto de 0 si algo paso mal

Lo que hace este codigo es resetear un Archivo de NOmbre Archivo, si este no existe crea uno nuevo.

--- Código: Text --- Assign(Archivo, 'Archivo.dat'); {$I-}   Reset(Archivo);   if IOResult <> 0 then {archivo no existe}   begin     WriteLn('No se encuentra el archivo');     WriteLn('Desea crear uno nuevo');     res := ReadKey;     if (res = 's') or (res = 'S') then ReWrite(Archivo);   end; {$I+}end;  La funcion IOResult devuelve varios valores además de cero con distintos mensajes de error, lo que si, es que no tengo ahora la tabla de los errores.

Ferdinandum:
Tx, haber como lo inserto en mi programa

FSR:
Para saber si existe algún archivo en particular...


--- Código: Text ---Function FileExist(P :PathStr) :Boolean;    Var        Ch :File;        OK :Boolean;    Begin        Assign(Ch, P);        {$I-}             Reset(Ch, 1);             OK := (IOResult=0);             Close(Ch);        {$I+}        FileExist := OK;    End; {FileExist} 
Espero que te sea de utilidad. Saludos  ;)

JrcsDev:

--- Código: Text ---function FileExist( fname: string ): boolean;var f: file;begin        {$I-}        assign( f, fname );        filemode := 0;        reset(f);        close(f);        {$I+}        FileExist := (IOResult = 0) and (fname <> '');end; 
Esta función viene en la ayuda de Turbo Pascal...

Navegación

[0] Índice de Mensajes

Ir a la versión completa