Espacios de nombres
Variantes
Acciones

Biblioteca del sistema de archivos

De cppreference.com
< cpp
 
 
 

La biblioteca del sistema de archivos proporciona facilidades para realizar operaciones en los sistemas de archivos y sus componentes, como rutas de acceso, archivos regulares y directorios.

La biblioteca del sistema de archivos se desarrolló originalmente como boost.filesystem, se publicó como la especificación técnica ISO/IEC TS 18822:2015, y finalmente se fusionó con ISO C++ a partir de C++17. La implementación de Boost está actualmente disponible en más compiladores y plataformas que la biblioteca C++17.

Las facilidades de la biblioteca del sistema de archivos pueden no estar disponibles si un sistema de archivos jerárquico no está accesible para la implementación, o si no proporciona las capacidades necesarias. Es posible que algunas funciones no estén disponibles si no son compatibles con el sistema de archivos subyacente (por ejemplo, el sistema de archivos FAT carece de enlaces simbólicos y prohíbe enlaces múltiples). En esos casos, los errores deben ser reportados.

El comportamiento es indefinido si las llamadas a funciones en esta biblioteca introducen una carrera del sistema de archivos, es decir, cuando múltiples hilos, procesos o computadoras intercalan el acceso y la modificación al mismo objeto en un sistema de archivos.

Contenido

[editar] Definiciones de toda la biblioteca

  • archivo: un objeto del sistema de archivos que contiene datos, se puede escribir, leer o ambos. Los archivos tienen nombres, atributos, uno de los cuales es el tipo de archivo:
* directorio: un archivo que actúa como un contenedor de entradas de directorio, que identifica otros archivos (algunos de los cuales pueden ser otros directorios anidados). Cuando se discute un archivo en particular, el directorio en el que aparece como entrada es su directorio padre. El directorio principal se puede representar mediante el nombre de ruta de acceso relativa "..".
* enlace rígido: una entrada de directorio que asocia un nombre con un archivo existente. Si se admiten varios enlaces rígidos, el archivo se elimina después de eliminar el último enlace rígido.
* enlace simbólico: una entrada de directorio que asocia un nombre con una ruta de acceso, que puede o no existir.
* archivo regular: un archivo que no es uno de los otros tipos de archivos.
  • nombre de archivo: una cadena de caracteres que nombra un archivo. Los caracteres permitidos, la distinción entre mayúsculas y minúsculas, la longitud máxima y los nombres no permitidos están definidos por la implementación. Los nombres "." (punto) y ".." (punto punto) tienen un significado especial al nivel de la biblioteca.
  • ruta de acceso: secuencia de elementos que identifica un archivo. Comienza con un nombre raíz opcional (por ejemplo, "C:" o "//servidor" en Windows), seguido de un directorio raíz (por ejemplo, "/" en Unix), seguido de una secuencia de cero o más nombres de archivo (todos menos el último deben ser directorios o enlaces a directorios). El formato nativo (por ejemplo, qué caracteres se usan como separadores) y la codificación de caracteres de la representación de cadena de una ruta de acceso (el nombre de ruta de acceso) está definida por la implementación, esta biblioteca proporciona una representación portátil de rutas.
* ruta de acceso absoluta: una ruta que identifica inequívocamente la ubicación de un archivo.
* ruta de acceso canónica: una ruta absoluta que no incluye enlaces simbólicos, elementos "." o "..".
* ruta de acceso relativo: una ruta que identifica la ubicación de un archivo en relación con alguna ubicación en el sistema de archivos. Los nombres de ruta especiales "." (punto, "directorio actual") y ".." (punto punto, "directorio padre") son rutas relativas.

[editar] Clases

Definido en el archivo de encabezado <filesystem>
Definido en el espacio de nombres filesystem
(C++17)
Representa una ruta de acceso.
(clase) [editar]
Una excepción lanzada cuando hay errores en el sistema de archivos.
(clase) [editar]
Una entrada de directorio.
(clase) [editar]
Un iterador al contenido del directorio.
(clase) [editar]
Un iterador al contenido de un directorio y sus subdirectorios.
(clase) [editar]
Representa el tipo y permisos de archivo.
(clase) [editar]
Información sobre el espacio libre y disponible en el sistema de archivos.
(clase) [editar]
(C++17)
El tipo de un archivo.
(enum) [editar]
(C++17)
Identifica los permisos del sistema de archivos.
(enum) [editar]
Especifica la semántica de las operaciones de permisos.
(enum) [editar]
Especifica la semántica de las operaciones de copia.
(enum) [editar]
Opciones para iterar sobre el contenido de un directorio.
(enum) [editar]
Representa los valores de tiempo de un archivo.
(typedef) [editar]

[editar] Funciones no miembro

(C++17)
Compone una ruta de acceso absoluta.
(función) [editar]
Compone una ruta de acceso canónica.
(función) [editar]
Compone una ruta de acceso relativa.
(función) [editar]
(C++17)
Copia archivos o directorios.
(función) [editar]
(C++17)
Copia el contenido de un archivo.
(función) [editar]
Copia un enlace simbólico.
(función) [editar]
Crea un directorio nuevo.
(función) [editar]
Crea un enlace rígido.
(función) [editar]
Crea un enlace simbólico.
(función) [editar]
Devuelve o establece el directorio de trabajo actual.
(función) [editar]
(C++17)
Comprueba si una ruta de acceso se refiere a un objeto existente del sistema de archivos.
(función) [editar]
Comprueba si dos rutas de acceso se refieren al mismo objeto de sistema de archivos.
(función) [editar]
(C++17)
Devuelve el tamaño de un archivo.
(función) [editar]
Devuelve el número de enlaces rígidos que se refieren a un archivo específico.
(función) [editar]
Capta o establece el tiempo de la última modificación de datos.
(función) [editar]
Modifica los permisos de acceso al archivo.
(función) [editar]
Obtiene el objetivo de un enlace simbólico.
(función) [editar]
(C++17)(C++17)
Remueve un archivo o directorio vacío.
Remueve un archivo o directorio y todo su contenido recursivamente.
(función) [editar]
(C++17)
Mueve o renombra un archivo o directorio.
(función) [editar]
Cambia el tamaño de un archivo regular por truncamiento o relleno con ceros.
(función) [editar]
(C++17)
Determina el espacio libre disponible en el sistema de archivos.
(función) [editar]
(C++17)(C++17)
Determina los atributos de archivo.
Determina los atributos de archivo, comprobando el objetivo del enlace simbólico.
(función) [editar]
Devuelve un directorio adecuado para archivos temporales.
(función) [editar]
Tipos de archivo
Comprueba si una ruta de acceso dada se refiere a un dispositivo de bloque.
(función) [editar]
Comprueba si la ruta de acceso dada se refiere a un dispositivo de carácter.
(función) [editar]
Comprueba si la ruta de acceso dada se refiere a un directorio.
(función) [editar]
(C++17)
Comprueba si la ruta de acceso dada se refiere a un archivo o directorio vacío.
(función) [editar]
(C++17)
Comprueba si la ruta de acceso dada se refiere a una tubería nombrada (named pipe).
(función) [editar]
(C++17)
Comprueba si el argumento se refiere a "otro" tipo de archivo.
(función) [editar]
Comprueba si el argumento se refiere a un archivo regular.
(función) [editar]
(C++17)
Comprueba si el argumento se refiere a un socket de comunicación interproceso con nombre.
(función) [editar]
Comprueba si el argumento se refiere a un enlace simbólico.
(función) [editar]
Comprueba si el estatus del archivo se conoce.
(función) [editar]

[editar] Notas

El uso de esta biblioteca puede requerir opciones adicionales del compilador/enlazador. La implementación de GNU requiere enlazar con -lstdc++fs y la implementación de LLVM requiere enlazar con -lc++fs.

[editar] Véase también

Documentación de C++ para ET Sistema de Archivos