|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Dec 2003
Messaggi: 97
|
[C] Ricerca ricorsiva di un file
Ho un immagine...ma voglio che un programma in automatico la cerchi nel mio hd e la sostituisca con una piu aggiornata che è contenuta nell' exe stesso..
vorrei che il mio prog: Creasse l'immagine NEW.jpg in C:\ ( lo so fare ) Cercasse il file OLD.jpg nel disco ( non lo so fare ) Sostituisse il file OLD.jpg con NEW.jpg ( non lo so fare, perchè non so come trovare la path ) Cancellasse il file NEW.jpg che non mi interessa più dato che OLD.jpg ormai è bello che upgradato. Ho cercato di farlo in diversi modi ma la ricerca ricorsiva o non mi funziona o mi funziona a metà... Avete qualche sorgente con una ricerca del genere ?? in C.. ![]() io ho fatto Codice:
#include <stdio.h> #include <stdlib.h> #include <windows.h> //Ricerca di un File by BianConiglio// int _look4aFile (char* _strStartPath) { HANDLE _hFileSearch; WIN32_FIND_DATA _hFileSearchData; int lastError = 0; char* _currentSearchPattern = (char*) malloc( MAX_PATH ); char* _reservedBuffer; if (_currentSearchPattern) { if (!_strStartPath) _strStartPath = "C:\\"; strcpy (_currentSearchPattern, _strStartPath); strcat (_currentSearchPattern, "*"); if ( (_hFileSearch = FindFirstFile(_currentSearchPattern, &_hFileSearchData)) != INVALID_HANDLE_VALUE ) { do { if ( strcmp(_hFileSearchData.cFileName, ".") && strcmp(_hFileSearchData.cFileName, "..") ) { if ( _hFileSearchData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY ) { _reservedBuffer = (char*) malloc( MAX_PATH+1 ); if ( _reservedBuffer ) { strcpy (_reservedBuffer, _strStartPath); strcat (_reservedBuffer, _hFileSearchData.cFileName); strcat (_reservedBuffer, "\\"); lastError = _look4aFile (_reservedBuffer); free (_reservedBuffer); } else lastError = -1; } else { if ( !strcmp(_hFileSearchData.cFileName, "prova.txt" )) printf ("Ho trovato un file \"%s\" nella cartella \"%s\"\n", _hFileSearchData.cFileName, _strStartPath); } } } while ( FindNextFile(_hFileSearch, &_hFileSearchData) ); } else lastError = 1; free (_currentSearchPattern); FindClose (_hFileSearch); } else lastError = -1; return lastError; } int main() { _look4aFile (NULL); system("PAUSE"); return 0; } ![]() che faccio ?? Ultima modifica di BianConiglio : 15-03-2004 alle 08:27. |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Dec 2003
Messaggi: 97
|
ho risolto...non tutte le cartelle sono FILE_ATTRIBUTE_DIRECTORY
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ciao
![]() Quali altri attributi possono avere ? |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Dec 2003
Messaggi: 97
|
ho visto la lista prima, sinceramente nn la riesco piu a trovare, cmq per farlo cercare in tutte le cartelle ho messo
if ( _hFileSearchData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) e funge alla grande ![]() mò però ho altri problemi ![]() verso sera se non risolvo posto il nuovo sorgente... |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Cancella quello originale e copiaci quello nuovo...dovrebbe essere facile...
|
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Dec 2003
Messaggi: 97
|
heee mica ci riesco.....
![]() te cosa faresti ? |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Dec 2003
Messaggi: 97
|
hehe no il problema è piu complicato
![]() cmq sto risolvendo grazie se ho problemi mi faccio vivo tranquillo heheh |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:30.