Visual C++ .NET - Referencia Archivo XML

 
Vista:

Referencia Archivo XML

Publicado por Nestor (1 intervención) el 04/03/2010 22:19:23
Hola, quería hacerles una consulta: estoy escribiendo una aplicación de escritorio que debe leer y escribir un archivo XML. El tema es que en el código yo tengo que escribir la dirección física del documento XML que quiero manipular, lo cuál funciona perfecto. Pero que sucedería si quiero hacer de ésta una aplicación distribuible con un instalador y demás. No quiero que en cada máquina que se instale la aplicación se deba especificar la ruta del archivo.

Cómo podría hacer para que al hacer el instalador e instalarlo en cualquier máquina, la dirección del archivo XML sea independiente la instalación?

Bueno, eso es todo.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Manejo de rutas relativas para archivo XML en aplicación distribuible

Publicado por Alejandro (265 intervenciones) el 07/02/2024 23:34:16
Hola, Néstor.

Para hacer tu aplicación independiente de la ruta física del archivo XML y distribuible sin depender de rutas específicas, puedes utilizar rutas relativas o almacenar el archivo en una ubicación predefinida.

Aquí hay algunas sugerencias:

1. Usar rutas relativas:
- Coloca el archivo XML en una carpeta dentro de tu proyecto.
- Utiliza una ruta relativa para acceder a este archivo, por ejemplo, `./Data/miArchivo.xml`.
- Asegúrate de que la estructura de carpetas se mantenga durante la instalación.

2. Carpeta especial del sistema:
- Almacena el archivo XML en una carpeta especial del sistema, como `Environment.SpecialFolder.CommonApplicationData`.
- Puedes acceder a esta carpeta desde tu código sin especificar una ruta fija.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <Windows.h>
#include <Shlobj.h>
 
int main() {
    // Obtener la carpeta de datos compartidos del sistema
    PWSTR path;
    if (SHGetKnownFolderPath(FOLDERID_ProgramData, 0, NULL, &path) == S_OK) {
        std::wstring commonAppDataPath = path;
        CoTaskMemFree(path);
 
        // Concatenar el nombre del archivo XML
        std::wstring xmlFilePath = commonAppDataPath + L"\\TuCarpeta\\miArchivo.xml";
 
        // Ahora xmlFilePath contiene la ruta completa al archivo XML
        std::wcout << L"Ruta del archivo XML: " << xmlFilePath << std::endl;
    }
 
    return 0;
}

3. Configuración del usuario:
- Permite que los usuarios configuren la ruta del archivo XML desde la interfaz de tu aplicación.

Recuerda que estas son solo sugerencias generales y debes adaptarlas según tus necesidades y restricciones específicas. Al utilizar rutas relativas o carpetas especiales del sistema, facilitas la distribución y la portabilidad de tu aplicación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar