Programación General > Visual C++
Funcion Para Obtener La Ruta De Un Archivo.
bcasadorodriguez:
Lo que estoy haciendo es un módulo que me va a permitir unir dos programas. En el codigo del módulo es donde tengo la llamada al segundo programa que es el que tengo que abrir desde el módulo. Entonces, cuando tu instalas el primer programa, para poder acceder al modulo, te lo copias en el directorio de modulos del primer programa que has instalado y este asi llamara al segundo programa que puede estar instalado en cualquier otro sitio. entonces como posible solucion es tener un modulo para cada tipo de sistema operativo, pero si hubiese una funcion que me permita obtener el path, asi solo tendria que usar una unica version para cualquier version de windos.
Aun asi con el programa de Diodo no se como podria buscar en todos los directorios, ya que solo me devuelve el actual en el que me encuentro.
No se como hacerlo!! espero que podais ayudarme, muchisimas gracias.
Eternal Idol:
Para buscar algo tenes que usar las funciones que te dije recursivamente, primero listar todos los directorios de la unidad que quieras (buscas c:\* por ejemplo) y despues buscar los archivos de esos directorios hasta encontrar el ejecutable.
Pero es una solucion POBRE y COMPLICADA, si hay varias versiones del ejecutable u otro ejecutable con el mismo nombre podes tener problemas.
Es mas facil que escribas un valor en el registro del sistema cuando lo instales y lo leas cuando lo quieras ejecutar. :devil:
bcasadorodriguez:
No se cómo puedo buscar en todos los directorios hasta encontrar el archivo que necesito. Me podrias poner un ejemplo?. Y por cierto con lo del registro ya si que me has dejado sin palabras¿?¿?¿?
Gracias por la atencion.
Eternal Idol:
No es facil dar un ejemplo de esto, es practicamente el codigo.
--- Código: Text --- void searchDrive(char *Drive, char *searchFile){ WIN32_FIND_DATA file; HANDLE driveHandle = FindFirstFile(Drive, &file); if (driveHandle != INVALID_HANDLE_VALUE) { for (;FindNextFile(driveHandle, &file);) { if (file.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { //file.cFileName es un directorio, usamos eso para llamarnos otra vez } else { //file.cFileName es un archivo, comparamos contra searchFile } } FindClose(driveHandle); }}
Asi como esta no es 100% funcional, te dejo un poco para que lo resuelvas vos.
El registro del sistema es donde Windows y las apliaciones desarrolladas para este Sistema Operativo guardan informacion, podes usar funciones como RegCreateKey (para abrir y crear claves), RegSetValueEx (para guardar un valor) y RegQueryValueEx (para leer el valor, en este caso el path).
Navegación
[*] Página Anterior
Ir a la versión completa