crear archivo con variable de entorno c++ windows
(1/1)
soyloqbuskas:
Buenas a todos.
Querria saber como crear un archivo en una carpeta referenciada mediante variable de entorno (o variable del sistema) programando en c o c++ para windows.
Seria algo asi pero con codigo: crearArchivo("nombre archivo","%rutaCarpetaEntorno%/subdirectorio");
¿Sabéis lo que digo?
Gracias, un saludo.
EdePC:
Claro, puedes pedir variables de entorno con una librería clásica de C que se puede utilizar en C++: cstdlib y la instrucción: getenv("VariableDeEntorno")
Código
#include <cstdlib>
#include <iostream>
int main() {
std::cout << std::getenv("UserName");
}
Atika:
En Windows, puedes acceder a las variables de entorno utilizando la función getenv() para obtener la ruta de la carpeta desde la variable de entorno y luego usar esa ruta para crear un archivo. Aquí te pongo un ejemplo en C++:
Código
#include <iostream>
#include <fstream>
#include <cstdlib> // Incluir la librería para manejar variables de entorno
bool crearArchivo(const std::string& nombreArchivo, const std::string& rutaCarpeta) {
// Obtener la ruta de la carpeta desde la variable de entorno
const char* rutaEntorno = getenv("NOMBRE_VARIABLE_ENTORNO"); // Reemplaza "NOMBRE_VARIABLE_ENTORNO" con el nombre de la variable de entorno que necesitas
if (rutaEntorno == nullptr) {
std::cerr << "La variable de entorno no está definida." << std::endl;
return false;
}
// Combinar la ruta de la carpeta del entorno con la subcarpeta
std::string rutaCompleta = std::string(rutaEntorno) + "/" + rutaCarpeta;
// Combinar la ruta completa con el nombre del archivo
rutaCompleta += "/" + nombreArchivo;
// Crear el archivo en la ruta completa
std::ofstream archivo(rutaCompleta);
if (!archivo.is_open()) {
std::cerr << "Error al crear el archivo." << std::endl;
return false;
}
archivo << "Este es el contenido del archivo." << std::endl;
archivo.close();
std::cout << "Archivo creado en: " << rutaCompleta << std::endl;
return true;
}
int main() {
std::string nombreArchivo = "miArchivo.txt";
std::string rutaCarpetaEntorno = "subdirectorio";
if (crearArchivo(nombreArchivo, rutaCarpetaEntorno)) {
std::cout << "¡Archivo creado exitosamente!" << std::endl;
} else {
std::cerr << "Hubo un error al crear el archivo." << std::endl;
}
return 0;
}
Haber si te sirve este programa.
MOD: Etiqueta GeSHi
soyloqbuskas:
Muchas gracias a los 2. Me ha servido de mucho.
Un saludo.
Navegación