C/Visual C - ¿como guardar una ruta de directorios?

 
Vista:

¿como guardar una ruta de directorios?

Publicado por Redlake (2 intervenciones) el 14/03/2001 12:15:51
¿ como puedo guardar una ruta de directorios en una variable ?, se utiliza el mismo esquema que para abrir un fichero ?, es decir, este es el ejemplo ...

static char BASED_CODE szFilter[]="Directorio (Dir)|//¿que se pone aqui?|";
CFileDialog d(FALSE,"all",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter,NULL);
CString nom;
d.m_ofn.lpstrInitialDir="c:\\";

if(d.DoModal()==IDOK)
{
nom=d.GetPathName();
char NomDirectorio[200];
strcpy(NomDirectorio,LPCTSTR(nom));
}
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

Guardar una ruta de directorio en una variable

Publicado por Alejandro (1153 intervenciones) el 09/09/2024 23:47:45
Redlake, para guardar una ruta de directorio en una variable en C++, puedes utilizar una variable de tipo `CString` o `std::string`. El esquema es similar al de abrir un archivo, pero en lugar de utilizar la clase `CFileDialog`, puedes utilizar funciones específicas para trabajar con directorios, como `SHBrowseForFolder` o `GetOpenFileName`.

Aquí tienes un ejemplo de cómo guardar una ruta de directorio en una variable utilizando `SHBrowseForFolder`:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <windows.h>
#include <shlobj.h>
#include <string>
 
std::string ObtenerRutaDirectorio()
{
    std::string rutaDirectorio;
 
    BROWSEINFO bi = { 0 };
    bi.lpszTitle = "Selecciona un directorio";
    LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
 
    if (pidl != NULL)
    {
        TCHAR path[MAX_PATH];
        if (SHGetPathFromIDList(pidl, path))
        {
            rutaDirectorio = path;
        }
        CoTaskMemFree(pidl);
    }
 
    return rutaDirectorio;
}

En este ejemplo, la función `ObtenerRutaDirectorio` utiliza `SHBrowseForFolder` para mostrar un cuadro de diálogo de selección de directorio. La ruta seleccionada se guarda en la variable `rutaDirectorio` de tipo `std::string`.

Puedes llamar a esta función en tu código de la siguiente manera:

1
std::string ruta = ObtenerRutaDirectorio();

Recuerda incluir las cabeceras `windows.h` y `shlobj.h` para utilizar las funciones y tipos necesarios.

Espero que esta información sea útil.
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