std::filesystem::path::c_str, std::filesystem::path::native, std::filesystem::path::operator string_type()
De cppreference.com
<tbody>
</tbody>
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 de acceso nativo como una cadena de caracteres.
1) Es equivalente a
native().c_str().2) Devuelve la representación en formato nativo del nombre de ruta de acceso por referencia.
3) Devuelve la representación en formato nativo del nombre de ruta de acceso por valor.
Parámetros
(Ninguno)
Valor de retorno
La representación de la cadena nativa del nombre de la ruta, utilizando la sintaxis nativa, el tipo de carácter nativo y la codificación de carácter nativo. Esta cadena es adecuada para su uso con las API del sistema operativo.
Notas
La función de conversión (3) se proporciona para que las API que aceptan nombres de archivo usando std::basic_string puedan usar nombres de ruta de acceso sin cambios en el código.
Ejemplo
Ejecuta este código
#include <cstdio>
#ifdef _MSC_VER
#include <io.h>
#include <fcntl.h>
#else
#include <locale>
#include <clocale>
#endif
#include <fstream>
#include <filesystem>
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"; // Antes de LWG2676 usa operador string_type()
// en MSVC, donde string_type es wstring; solo
// funciona debido a extensión no estándar.
// Posterior a LWG2676 usa nuevos constructores de fstream
// la representación de cadena nativa puede usarse con las API del SO
if (std::FILE* f =
#ifdef _MSC_VER
_wfopen(p.c_str(), L"r")
#else
std::fopen(p.c_str(), "r")
#endif
)
{
int ch;
while((ch=fgetc(f)) != EOF) putchar(ch);
std::fclose(f);
}
std::filesystem::remove(p);
}
Posible salida:
Contenido del archivo
Véase también
| Devuelve la ruta de acceso en un nombre de ruta de acceso convertido a una cadena. (función miembro pública) | |
| Devuelve la ruta de acceso en formato de nombre de ruta de acceso genérico convertido en una cadena. (función miembro pública) |