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

[0] Índice de Mensajes