Olivia_v2017/includes/Utiles/dir_manager.h

44 lines
2.1 KiB
C++

#pragma once
#include "base_head.h"
class C_error;
class StrArray;
class UTILES_EXPORT Cdir_manager//clase para manejar carpetas
{
public:
//carpetas-------------------------------------------------------
char dir_work[FILENAME_MAX];
char dir_exe[FILENAME_MAX];
char dir_log[FILENAME_MAX];
char dir_datos[FILENAME_MAX];
//archivos-------------------------------------------------------
char path_conf[FILENAME_MAX];
//rutas de ejecucion---------------------------------------------
char dir_ejecucion[FILENAME_MAX];
char path_ejecutable[FILENAME_MAX];
//funciones------------------------------------------------------
Cdir_manager(void);
~Cdir_manager(void);
//funciones------------------------------------------------------
void absoluta(char *ruta);
void relativa(char *ruta);
BOOL lee_reg(char* clave, C_error *er=NULL);
BOOL rellena_dirs_ejecucion();
//funciones estaticas---------------------------------------
static char* dir_anterior(char*dir);//da el directorio anterior
static char* nombre_archivo(char *path,char*nombre);//devuelve en nombre el nombre del archivo
static char* extension_archivo(char *path);//te da la extension de un path o de un nombre de archivo
static char* cambia_extension_archivo(char *path, char *pathDst, char *newext);//te da la extension de un path o de un nombre de archivo
static BOOL crea_dir(char *path);//asegura que existe los directorios indicados
static BOOL borra_archivos(char *paht, char *ext, BOOL recursivo = FALSE);//borra archivos de una extension dada, si ext es null borra todos
//funciones de listado-----------
static BOOL listar_elementos(char *dir,StrArray *files,StrArray *dirs,C_error *er=NULL);//dice los files y las dir dentro de un dir(no recursivo)
static BOOL lista_files(char *dir,StrArray *files,BOOL recursivo=FALSE,C_error *er=NULL,char *omite=NULL);
static BOOL listar( char* dir,StrArray *files,StrArray *dirs=NULL,BOOL recursivo=FALSE,C_error *er=NULL,char *omite=NULL );//funcion generica de listar
//devuelve version de el archivo
static char* getVersionFile(char *path, char *buf);//buffer de 64 sobra
};