View Full Version : [C] Cercare in una cartella un EXE di dimensioni prestabilite
BianConiglio
05-04-2004, 23:39
Ho il mio bel codicillo pulito e profumato che mi cerca un file (identificatore di un programma) nell' harddisk e mi restituisce ( nella stringa strStartPath ) la path in cui l'ha trovato.
Mò ho sta path...e devo farci una cosa difficile difficile per me!
Devo cercare all'interno della path trovata un file exe di DIMENSIONI DATE ma che puo essere stato rinominato per comodità dell'utente (può avere 3 dimensioni, son 3 differenti versioni dello stesso exe) e voglio che il prog mi restuisca il nome dell'eseguibile trovato.
In questo modo poi terminerò l'esecuzione dell'exe trovato tramite il suo nome.
Help please ;)
Compilatore e sistema operativo ?
BianConiglio
06-04-2004, 11:37
dev cpp
sistema op. bè devrebbe poter andare su tutti, male che vada solo Xp :)
Dai un'occhiata a findfirst...cerchi tutti gli exe e poi controlli la dimensione ;)
BianConiglio
07-04-2004, 11:42
quel problema l'ho gia risolto, per ora ;)
ho utilizzato FindFirstFile.....
ora un altro problema per il quale non riesco a trovare soluzione.... determinare dato il file, la sua dimensione.. non tropo le api da utilizzare......sarà qualcosa tipo getsize ma non trovo un cazz :cry:
Ah...ma allora puoi usare le API...
FindFirstFile ti ritonra una struttura di questo tipo:
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[ MAX_PATH ];
TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA, *PWIN32_FIND_DATA;
BianConiglio
07-04-2004, 11:59
ikkia e io a farmi una marea di seghe mantali, ottimo ho risolto, grazie ;)
mò sono al 90% del progetto ;)
BianConiglio
07-04-2004, 21:13
mh mò il problema è che vorrei ottimizzare la cosa....
io ho il prog che mi restituisce una path........io voglio che la ricerca sia fatta IN QUELLA PATH......come faccio ?
Come adatto il codice seguente in modo che cerchi non nella cartella del programma ma in una PATH PREDEFINITA (che poi verrà modificata tramite dei cicli che nn posto)?
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
int cmd3 = 192512;
int cmd8 = 188416;
int graf = 413696;
WIN32_FIND_DATA FindFileData;
HANDLE hFind = FindFirstFile("*.exe", &FindFileData);
if (hFind != INVALID_HANDLE_VALUE) {
do {
printf ("I've found: %s\n", FindFileData.cFileName);
printf ("The size is %d\n", FindFileData.nFileSizeLow);
if ((FindFileData.nFileSizeLow == cmd3)
|| (FindFileData.nFileSizeLow == cmd8)
|| (FindFileData.nFileSizeLow == graf))
printf ("Found! %s\n\n", FindFileData.cFileName);
else printf ("Not matching\n\n");
} while (FindNextFile(hFind, &FindFileData));
FindClose(hFind);
system("pause");
return 0;
}
}
In tuaPath hai il percorso con lo \ finale (se non lo hai cacatenacelo con strcat)...
char tuaPath[MAX_PATH];
....
if(tuaPath[strlen(tuaPath)-1] != '\\\')
strcat(tuaPath, "\\")
strcat(tuaPath, "*.exe")
FindFirstFile(tuaPath, ....
BianConiglio
08-04-2004, 08:39
mh buona soluzione, dopo la implemento ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.