C/Visual C - OPEN FILE, pero de a varios.

 
Vista:

OPEN FILE, pero de a varios.

Publicado por MaC (9 intervenciones) el 06/04/2001 17:22:23
Necesito, crear un dialogo del tipo ABRIR, pero que tenga selección múltiple de archivos. Además, qué hago para obtener el directorio y los archivos seleccionados. Por favor, ayudenme, os agradeceré mucho.
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

Solución para abrir múltiples archivos y obtener el directorio y los archivos seleccionados

Publicado por Alejandro (913 intervenciones) el 20/09/2024 17:09:37
Para lograr esto en C/Visual C, puedes seguir los siguientes pasos:

1. Crea un diálogo de tipo "ABRIR" utilizando la función `CFileDialog`. Asegúrate de establecer la bandera `OFN_ALLOWMULTISELECT` para permitir la selección múltiple de archivos.

2. Cuando el usuario selecciona los archivos y hace clic en "Abrir", puedes obtener la lista de archivos seleccionados utilizando el método `GetStartPosition` y `GetNextPathName` de la clase `CFileDialog`. Esto te permitirá recorrer todos los archivos seleccionados uno por uno.

3. Para obtener el directorio en el que se encuentran los archivos seleccionados, puedes utilizar el método `GetFolderPath` de la clase `CFileDialog`.

Aquí tienes un ejemplo de código que muestra cómo implementar esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
CFileDialog dlg(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT, _T("Todos los archivos (*.*)|*.*||"), NULL);
CStringList fileList;
 
if (dlg.DoModal() == IDOK)
{
    POSITION pos = dlg.GetStartPosition();
    CString filePath;
    CString folderPath = dlg.GetFolderPath();
 
    while (pos != NULL)
    {
        filePath = dlg.GetNextPathName(pos);
        fileList.AddTail(filePath);
    }
 
    // Aquí puedes hacer lo que necesites con la lista de archivos y el directorio
    // Por ejemplo, puedes recorrer la lista y mostrar los nombres de los archivos
    POSITION filePos = fileList.GetHeadPosition();
    while (filePos != NULL)
    {
        CString fileName = fileList.GetNext(filePos);
        // Hacer algo con el nombre del archivo
    }
}

Espero que esta solución te sea útil. ¡Buena suerte con tu proyecto, MaC!
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