Buenos días!
Estoy implementando un programa que se dedica a leer los datos de un fichero que se encuentra en una determinada carpeta. La cosa es que cada mes, se genera un nuevo fichero al que acceder, lo que me obliga a cambiar el código para acceder al ultimo fichero que se ha generado.
Mi pregunta es; existe alguna forma de que mi programa sea capaz de estar a la espera de encontrar un nuevo fichero dentro de la misma ruta con idea de que automáticamente, los datos que necesito sacar de dichos ficheros se actualicen sin necesidad de que cada mes tenga que cambiar el código.
Muchas gracias de antemano! Un saludo
A lo mejor no estás planteando el problema con la tecnología adecuada. Me explico: por qué programar un complejo programa C con llamadas complejas a API cuando todo esto se puede hacer con los comandos de la shell, ya que la pregunta original se refiere a Linux
A ver que te parece este pequeño scrpipt.
#!/bin/sh
TARGET_DIR=$HOME # Change to your choice, i.e. "/tmp/log"
LAST_MODIFIED=$(stat -c "%Y %n" $TARGET_DIR/* | sort | cut -d ' ' -f 2 | tail -1)
echo $LAST_MODIFIED
Esto detecta el ultimo fichero modificado en un directorio. Si lo quieres hacer
periódicamente cada mes, lo mejor es integrarlo el servicio cron . No puedo desbribir aquí como va, (dale a man
cron)
Finalmente, llega tu programa original, el que tiene que procesar el fichero detectado. En lugar de hacer
echo, invocas tu programa pasando el fichero por parámetro, sin cambiarlo.
#!/bin/sh
TARGET_DIR=$HOME # Change to your choice, i.e. "/tmp/log"
LAST_MODIFIED=$(stat -c "%Y %n" $TARGET_DIR/* | sort | cut -d ' ' -f 2 | tail -1)
myprogram $LAST_MODIFIED
Si puede valer....