Namespaces
Variants

std::filesystem::path:: c_str, std::filesystem::path:: native, std::filesystem::path:: operator string_type()

From es.cppreference.net
const value_type * c_str ( ) const noexcept ;
(1) (desde C++17)
const string_type & native ( ) const noexcept ;
(2) (desde C++17)
operator string_type ( ) const ;
(3) (desde C++17)

Accede al nombre de ruta nativo como una cadena de caracteres.

1) Equivalente a native ( ) . c_str ( ) .
2) Devuelve la representación en formato nativo de la ruta por referencia.
3) Devuelve la representación en formato nativo del nombre de ruta por valor.

Contenidos

Parámetros

(ninguno)

Valor de retorno

La representación nativa de cadena del nombre de ruta, utilizando sintaxis nativa, tipo de carácter nativo y codificación de caracteres nativa. Esta cadena es adecuada para su uso con APIs del sistema operativo.

Notas

La función de conversión (3) se proporciona para que las APIs que aceptan std::basic_string nombres de archivo puedan utilizar rutas de acceso sin realizar cambios en el código.

Ejemplo

#include <cstdio>
#ifdef _MSC_VER
#include <fcntl.h>
#include <io.h>
#else
#include <clocale>
#include <locale>
#endif
#include <filesystem>
#include <fstream>
int main()
{
#ifdef _MSC_VER
    _setmode(_fileno(stderr), _O_WTEXT);
#else
    std::setlocale(LC_ALL, "");
    std::locale::global(std::locale(""));
#endif
    std::filesystem::path p(u8"要らない.txt");
    std::ofstream(p) << "File contents"; // Prior to LWG2676 uses operator string_type()
                                         // on MSVC, where string_type is wstring, only
                                         // works due to non-standard extension.
                                         // Post-LWG2676 uses new fstream constructors
    // Native string representation can be used with OS-specific APIs
#ifdef _MSC_VER
    if (std::FILE* f = _wfopen(p.c_str(), L"r"))
#else
    if (std::FILE* f = std::fopen(p.c_str(), "r"))
#endif
    {
        for (int ch; (ch = fgetc(f)) != EOF; std::putchar(ch))
        {}
        std::fclose(f);
    }
    std::filesystem::remove(p);
}

Salida posible:

File contents

Véase también

devuelve la ruta en formato de nombre de ruta nativo convertida a una cadena
(función miembro pública)
devuelve la ruta en formato de nombre de ruta genérico convertida a una cadena
(función miembro pública)