Visual C++ .NET - Dudas con FileInfo

 
Vista:

Dudas con FileInfo

Publicado por Francisco Javier Campos Granad (2 intervenciones) el 04/04/2007 20:04:36
Buenas. Estoy intentando crear un explorador de ficheros, como el de windows con Visual C++ .NET Es una aplicacion Windows Form bajo Visual Studio 2005

Puesto que es un explorador, necesito informacion sobre los ficheros, tales como su nombre, su extension, su tamaño, etc. Hasta ahora estoy usando la clase FileInfo, pero en esta clase no consigo obtener el icono que tiene un fichero, para mostrarlo en el explorador. Mi pregunta es: ¿Como puedo obtener el icono asociado a un archivo?

Gracias de antemano por la ayuda.
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

Obtener el icono asociado a un archivo en explorador de ficheros

Publicado por Alejandro (265 intervenciones) el 30/01/2024 20:44:48
Hola Francisco.

Para obtener el icono asociado a un archivo en Visual C++ .NET, puedes utilizar las funciones del sistema operativo Windows. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <Shlobj.h>
#include <Shlwapi.h>
 
#pragma comment(lib, "Shlwapi.lib")
 
using namespace System::Drawing;
 
// Función para obtener el icono asociado a un archivo
Icon^ GetFileIcon(String^ filePath) {
    SHFILEINFO shfi;
    ZeroMemory(&shfi, sizeof(SHFILEINFO));
 
    // Obtener información del archivo
    IntPtr hIcon = IntPtr(ExtractIcon(IntPtr::Zero, filePath, 0));
 
    // Convertir el identificador del icono a un objeto Icon
    return hIcon != IntPtr::Zero ? Icon::FromHandle(hIcon) : nullptr;
}
 
// Ejemplo de uso
void MostrarIconoDeArchivo(String^ filePath) {
    Icon^ fileIcon = GetFileIcon(filePath);
 
    if (fileIcon != nullptr) {
        // Utiliza el icono como desees, por ejemplo, asignándolo a un PictureBox
        pictureBox1->Image = fileIcon->ToBitmap();
    } else {
        // Manejar el caso en que no se pueda obtener el icono
    }
}

Asegúrate de agregar las bibliotecas necesarias y sus enlaces. En este ejemplo, se usa `Shlobj.h` y `Shlwapi.h` para las funciones relacionadas con el sistema de archivos.

Espero que esto te sea de ayuda.
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