Home | Develop | Download | Contact
RaFile.hpp
1 /*
2  * RaFile.hpp
3  *
4  * Copyright 2018 Fernando Pujaico Rivera <fernando.pujaico.rivera@gmail.com>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19  * MA 02110-1301, USA.
20  *
21  */
22 
30 #ifndef __PDS_RAFILE_HPP__
31 #define __PDS_RAFILE_HPP__
32 
33 #include <string>
34 #include <vector>
35 #include <cstdio>
36 #include <list>
37 
47 namespace Pds{
52 namespace Ra{
53 
54 
55 
68  typedef enum{
71  }ArqType;
72 
73 
110  std::vector<std::string> GetArquives( const std::string &dirpath,
111  Pds::Ra::ArqType Type,
112  const std::string &pattern_include,
113  const std::string &pattern_exclude);
114 
135  std::vector<std::string> GetFiles( const std::string &dirpath,
136  const std::string &pattern_include="*",
137  const std::string &pattern_exclude="");
138 
158  std::vector<std::string> GetSubDirs(const std::string &dirpath,
159  const std::string &pattern_include="*",
160  const std::string &pattern_exclude="");
161 
170  std::vector<std::string> GenPath( const std::string &dirpath);
171 
178  std::vector<std::string> GenSignificativeLines(const std::string &filepath);
193  const std::string FileSep =
194  #if defined(WIN32) || defined(_WIN32)
195  "\\";
196  #else
197  "/";
198  #endif
199 
204  const char CharFileSep =
205  #if defined(WIN32) || defined(_WIN32)
206  '\\';
207  #else
208  '/';
209  #endif
210 
211 
218  std::string HomeDir(void);
219 
224  std::string ProgramPath(void);
225 
226 
231  std::string ProgramDirPath(void);
232 
237  std::string Pwd(void);
256  bool MakeDir(const std::string &dirpath);
257 
270  std::string FullFile( std::vector<std::string> str_text_list );
271 
272 
286  std::string ReplaceExtension(std::string filepath,std::string new_ext);
287 
301  std::string Dirname(std::string filepath);
302 
316  std::string Basename(std::string filepath);
317 
331  std::string Extension(std::string filepath);
332 
346  std::string Filename(std::string filepath);
347 
348 
368  bool IsFile(std::string path);
369 
378  bool IsDir(std::string path);
379 
380 
412  long SignificativeLinesInFile(const std::string &filepath);
413 
432  bool ElementsInFile(const std::string &filepath,unsigned int &Nel);
433 
454  bool ArraySizeInFile(const std::string &filepath,unsigned int &Nlin,unsigned int &Ncol);
455 
477  char *Fgets(FILE *fd);
478 
479 
480 
487 } // namespace Ra
488 } // namespace Pds
489 
490 
495 #endif /* __PDS_RAFILE_HPP__ */
std::string HomeDir(void)
Retorna una nueva cadena de texto con la dirección del directorio de usuario. HOME en gnu-linux y {HO...
std::string ProgramPath(void)
Retorna un std::string con la ruta del programa que lo invoca.
std::string Filename(std::string filepath)
Retorna un std::string con el filename de un filepath.
std::vector< std::string > GetArquives(const std::string &dirpath, Pds::Ra::ArqType Type, const std::string &pattern_include, const std::string &pattern_exclude)
Retorna los archivos dentro de un directorio (en un nivel solamente y siguiendo algunos criterios).
std::vector< std::string > GetSubDirs(const std::string &dirpath, const std::string &pattern_include="*", const std::string &pattern_exclude="")
Retorna todos los subdirectorios dentro de un directorio (recursivamente y siguiendo algunos criterio...
std::string ReplaceExtension(std::string filepath, std::string new_ext)
Retorna un std::string con un filepath con otra extension de un filepath.
ArqType
Una union de tipo ArqType. Esta union tiene dos tipos de datos tipo directorio y tipo documento.
Definition: RaFile.hpp:68
std::string Basename(std::string filepath)
Retorna un std::string con el basename de un filepath.
bool ArraySizeInFile(const std::string &filepath, unsigned int &Nlin, unsigned int &Ncol)
Retorna el número de lineas significativas y columnas de un archivo. Se asume que es un archivo de te...
char * Fgets(FILE *fd)
Retorna una linea leida desde un desriptor de fichero de texto. No descarta el salto de linea '\n' y ...
long SignificativeLinesInFile(const std::string &filepath)
Retorna el número de lineas significativas de un archivo. Se asume que es un archivo de texto.
std::vector< std::string > GenSignificativeLines(const std::string &filepath)
Retorna un vector de cadenas con las lineas significativas (no vacias) delarchivo.
std::string Pwd(void)
Retorna un std::string con la ruta actual.
const std::string FileSep
std::string con un separador de fichero "\\" para WINDOWS y "/" para linux.
Definition: RaFile.hpp:193
std::string Extension(std::string filepath)
Retorna un std::string con el extension de un filepath.
std::vector< std::string > GetFiles(const std::string &dirpath, const std::string &pattern_include="*", const std::string &pattern_exclude="")
Retorna los ficheros dentro de un directorio (en un nivel solamente y siguiendo algunos criterios).
std::string FullFile(std::vector< std::string > str_text_list)
Retorna una nueva cadena con un filepath creado por la union de las cadenas de entrada,...
bool MakeDir(const std::string &dirpath)
Crea un directorio recursivamente si es necesario.
const char CharFileSep
std::string con un separador de fichero "\\" para WINDOWS y "/" para linux.
Definition: RaFile.hpp:204
bool IsFile(std::string path)
Retorna true si es un fichero existenteste (simbólico o real) no directorio, o false si no.
std::vector< std::string > GenPath(const std::string &dirpath)
Retorna el directorio actual y todos los subdirectorios (recursivamente y siguiendo algunos criterios...
std::string ProgramDirPath(void)
Retorna un std::string con la ruta del directorio del programa que lo invoca.
std::string Dirname(std::string filepath)
Retorna un std::string con el directorio de un filepath.
bool ElementsInFile(const std::string &filepath, unsigned int &Nel)
Retorna el número de elementos de un archivo. Se asume que es un archivo de texto.
bool IsDir(std::string path)
Retorna true si es un directorio existenteste (simbólico o real) no fichero, o false si no.
@ TYPE_FILE
Definition: RaFile.hpp:69
@ TYPE_DIR
Definition: RaFile.hpp:70
Nombre de espacion para PDS (Procesamiento Digital de Senales)
Definition: RaFile.hpp:47

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed