• Viernes 17 de Mayo de 2024, 05:28

Autor Tema:  Insertar Estructura Directorios En Arbol  (Leído 2348 veces)

Sandra_mad

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Insertar Estructura Directorios En Arbol
« en: Viernes 28 de Mayo de 2004, 10:38 »
0
Tengo un problema, estoy haciendo en visual c++ una aplicacion, y quiero hacer como los programas de instalacion, cuando te dan la opcion de cambiar la ruta donde se instalara; Es decir, quiero que al pulsar un boton, me aparezca la estructura jerarquica de los directorios; C, D, los directorios de cada uno... Pues bien, no se como hacer el arbol, no se por donde empezar, en el libro de Ceballos no viene nada de estructuras en arbol, y en internet no he sido capaz de encontrar informacion; Si alguien puede orientarme un poco; Gracias por lerme;

Sandra_mad

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Insertar Estructura Directorios En Arbol
« Respuesta #1 en: Viernes 28 de Mayo de 2004, 20:08 »
0
Por fin he encontrado informacion; Ya no hace falta; Si lo consigo y a alguien le interesa que lo pregunte; Buenas Tardes

5erg10

  • Miembro activo
  • **
  • Mensajes: 42
    • Ver Perfil
Re: Insertar Estructura Directorios En Arbol
« Respuesta #2 en: Sábado 29 de Mayo de 2004, 19:22 »
0
Creo que ya llego un poco tarde, pero si sigues necesitando ayuda te diré que yo utilicé para ello la clase CFolderDialog. Yo pensaba que sería una clase estándar que vendria ya con las librerías de las MFCs, pero para poder utilizarlas me tuve que bajar librerías aparte de esta página:

http://www.codeguru.com/Cpp/W-D/dislog/dia...icle.php/c1883/

(es que yo también tuve este mismo problema hace poco xd)

PD. perdón, la página que utilicé no fue esa, sino

http://www.codeproject.net/dialog/cfolderdialog.asp
Welcome to the Jungle

Sandra_mad

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Insertar Estructura Directorios En Arbol
« Respuesta #3 en: Sábado 29 de Mayo de 2004, 22:27 »
0
Muchas gracias por contestar

Sandra_mad

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Insertar Estructura Directorios En Arbol
« Respuesta #4 en: Lunes 31 de Mayo de 2004, 12:05 »
0
Con el codigo de abajo, al pulsar un boton me sale la tipica ventana de windows para abrir un archivo, yo lo que quiero es examinar el dico duro para poder seleccionar una ruta; Me lo hace perfecto siempre y cuando sea un archivo, pero no me deja seleccionar un directorio; Deseo seleccionar un directorio, para posteriormente guaradr cosas en el; Se podria hacer????

void CDescargarArchivo::OnFileOpen()
{
CFileDialog DlgAbrir(true); // llama al constructor

// Definir los pares descripción|filtro
DlgAbrir.m_ofn.lpstrFilter = "Ficheros de proyecto \
(*.dsp)\0*.dsp\0Imágenes (*.bmp;*.ico)\0*.bmp;*.ico\0Todos los \
ficheros (*.*)\0*.*\0";

if ( DlgAbrir.DoModal() == IDOK )
{
// Visualizar el nombre del fichero en la caja de texto
m_sGuardarComo = DlgAbrir.GetPathName();
UpdateData( false );
}
}

Es decir, yo lo que quiero es selecionar un directorio, y obtener la ruta del mismo, no seleccionar archivos

5erg10

  • Miembro activo
  • **
  • Mensajes: 42
    • Ver Perfil
Re: Insertar Estructura Directorios En Arbol
« Respuesta #5 en: Martes 1 de Junio de 2004, 00:38 »
0
Con las librerías que te puse yo puedes crear dialogos del tipo del que te pongo a continuación:



Vamos, de los de escoger directorios en vez de archivos.

De todas formas, creo que la clase CFileDialog tiene una funcion miembro llamada GetFolderPath() que devuelve un CString conteniendo la ruta actual, aunque no la he probado nunca.

Aun así creo que la aplicación quedaría más elegante con un dialogo para escoger la ruta simplemente.

Saludos :hola:
Welcome to the Jungle

Sandra_mad

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Insertar Estructura Directorios En Arbol
« Respuesta #6 en: Martes 1 de Junio de 2004, 11:12 »
0
Ya esta solucionado, me sale el mismo dialogo que pones arriba pero de otra forma:

void CDescargarArchivo::OnFileOpen()
{
   typedef char StringType[MAX_PATH];
   BROWSEINFO bi;
   StringType Folder;
   StringType FullPath;
   char Title[] = "Selecciona el Directorio Destino";

   // Initialization code for the BROWSEINFO struct:
   bi.hwndOwner = this->m_hWnd;
   bi.pszDisplayName = Folder;
   bi.lpszTitle = Title;
   bi.ulFlags = BIF_RETURNONLYFSDIRS;  
   bi.pidlRoot = NULL;
   bi.lpfn = NULL;

if (SHGetPathFromIDList(::SHBrowseForFolder(&bi), FullPath))
   {
   m_sGuardarComo = FullPath;   // Here we assume the m_Dir is a variable associated with an edit box
   UpdateData(FALSE);  // Put data into edit boxes (or do whatever you want to do with it)
   }

}