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
Ir a la versión completa