<filesystem>

 

Publicado: octubre de 2016

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Incluir el encabezado <> > para tener acceso a clases y funciones que manipulan y recuperan información acerca de las rutas de acceso, archivos y directorios.

#include <experimental/filesystem> // C++-standard header file name  
#include <filesystem> // Microsoft-specific implementation header file name  
using namespace std::experimental::filesystem::v1;  

System_CAPS_ICON_important.jpg Importante

A partir del lanzamiento de Visual Studio 2015, el encabezado aún no era un estándar de C++. Visual C++ 2015 implementa el estándar de borrador final, que se encuentra en ISO/IEC JTC 1/SC 22/WG 21 N4100.

Este encabezado admite sistemas de archivos para uno de dos tipos amplios de sistemas operativos host: Microsoft Windows y Posix.

Mientras que la mayoría de las funciones son comunes a ambos sistemas operativos, en este documento se identifican las diferencias. Por ejemplo:

  • Windows admite varios nombres de raíz, como c: o \\network_name. Un sistema de archivos consta de un bosque de árboles, cada uno con su propio directorio raíz, como c:\ o \\network_name\y cada uno con su propio directorio actual, para completar una ruta de acceso relativa (uno que no es una ruta de acceso absoluta).

  • Posix admite un único árbol, sin nombre de raíz, el directorio raíz único / y un único directorio actual.

Otra diferencia importante es la representación nativa de rutas de acceso:

  • Windows utiliza una secuencia terminada en null de wchar_t, codificado como UTF-16 (uno o dos elementos para cada carácter).

  • POSIX utiliza una secuencia terminada en null de caracteres, codificado como UTF-8 (uno o más elementos para cada carácter).

  • Un objeto de ruta de acceso de clase almacena la ruta de acceso en forma nativa, pero admite la conversión sencilla entre esta forma almacenada y varias formas externas:

    • Secuencia terminada en null de caracteres, codificados como preferido por el sistema operativo.

    • Secuencia terminada en null de caracteres, codificado como UTF-8.

    • Secuencia terminada en null de wchar_t, codificada como preferido por el sistema operativo.

    • Secuencia terminada en null de char16_t, codificado como UTF-16.

    • Secuencia de char32_t, codificado como UTF-32 terminada en null.

Se realizan interconversions entre estas representaciones, según sea necesario, mediante el uso de uno o más codecvt las facetas. Si no se designa un objeto de configuración regional específica, estas facetas se obtienen de la configuración regional global.

Otra diferencia es el detalle con el que cada sistema operativo permite especificar permisos de acceso a archivos o directorios:

  1. Windows registra si un archivo es de solo lectura o editable, un atributo que no tiene sentido en el caso de los directorios.

  2. Posix registra si el propietario, el grupo del propietario o todos los usuarios pueden leer, editar o ejecutar un archivo (examinar si se trata de un directorio), además de algunos otros permisos.

Un aspecto común a ambos sistemas es la estructura impuesta en una ruta de acceso una vez superado el nombre de raíz. Para la ruta de acceso c:/abc/xyz/def.ext:

  • El nombre de raíz es c:.

  • El directorio raíz es /.

  • La ruta de acceso raíz es c:/.

  • La ruta de acceso relativa es abc/xyz/def.ext.

  • La ruta de acceso principal es c:/abc/xyz.

  • El nombre de archivo es def.ext.

  • La raíz es def.

  • La extensión es. ext.

Una diferencia menor es el separador preferido, entre la secuencia de directorios de una ruta de acceso. Ambos sistemas operativos permiten escribir una barra diagonal /, pero en algunos contextos Windows prefiere una barra diagonal inversa \.

Por último, una característica importante de objetos de la ruta de acceso es que puede utilizarlos siempre que sea un argumento filename es necesaria en las clases definidas en el encabezado <> </> >.

Para obtener más información y ejemplos de código, consulte exploración de sistema de archivos (C++).

NombreDescripción
directory_entry (clase)Describe un objeto que es devuelto por un directory_iterator o recursive_directory_iterator y contiene una ruta de acceso.
directory_iterator (clase)Describe un iterador de entrada que establece una secuencia por los nombres de archivo en un directorio de sistema de archivos.
filesystem_error (clase)Clase base para excepciones que se producen para notificar un desbordamiento de sistema de bajo nivel.
ruta de acceso de claseDefine una clase que almacena un objeto de tipo de plantilla String adecuado para su uso como nombre de archivo.
recursive_directory_iterator (clase)Describe un iterador de entrada que establece una secuencia por los nombres de archivo en un directorio de sistema de archivos. El iterador también puede descender a subdirectorios.
file_status (clase)Ajusta un file_type.
NombreDescripción
space_info (estructura)Contiene información sobre un volumen.

<>>funciones

<>>operadores

NombreDescripción
copy_option (enumeración)Enumeración que se utiliza con copy_file y determina el comportamiento si ya existe un archivo de destino.
directory_options (enumeración)Enumeración que especifica las opciones de los iteradores de directorio.
file_type (enumeración)Enumeración de tipos de archivo.
permisos (enumeración)Un tipo de máscara de bits que se usa para transmitir los permisos y las opciones de permisos.

Referencia de archivos de encabezado

Mostrar: