Newsgroup: it.comp.programmare.win32
Titolo: ottenere lista di file di una directory

Esiste un'API che mi scrive in un buffer la lista di file contenuti in una
directory?
grazie ciao.

 wrote in message
news:HOp69.208775$Jj7.4...@news1.tin.it...


 directory?
puoi usare:
FindFirstFile
FindNextFile
FindClose
ciao

come si fa ad usare FindFirstFile senza sapere i nomi dei files contenuti
nella cartella? ho provato con *.* ma non funziona.
Quello che devo fare io è leggere dei file contenuti in una cartella uno ad
uno senza saperne i nomi e le estensioni


> FindClose
Funziona funziona...
Per spostarti tra le dir usa SetCurrentDirectory();
Kiuhnm

Per spostarti tra le dir usa SetCurrentDirectory();
Non mi sembra una buona idea, in questo caso, modificare la directory
corrente, visto che poi molto spesso non viene riportata a quella
iniziale (e questo puň creare dei problemi) o che comunque un altro
thread del programma potrebbe non "gradire" molto.
-- 
Marco Barisione (ICQ 84277092)


Allora non usiamo neanche l'operatore new visto che alle volte la memoria
non viene mai liberata :-)
Comunque io l'ho usata in un programma con un solo thread e questo mi č
sembrato il metodo piů elegante.
Effettivamente in multithreading, se l'accesso ai file non č ristretto a un
singolo thread, ci possono essere problemi.
Tutto sommato hai ragione :-)
Kiuhnm

sembrato il metodo più elegante.
Io in un programma usavo una libreria per scompattare gli exe che
impostava la directory di destinazione come directory corrente, ma
questa era solo una directory temporanea che dopo avrei voluto
cancellare ma non riuscivo. Ci ho impiegato molto prima di capire il
problema[1](anzi, a dire la verità, il problema me lo hanno risolto
altri in questo gruppo).
[1] Bhé, se l'errore fosse stato un po' più esplicativo di
"Impossibile cancellare la directory" ci sarei arrivato un po' prima.


 "Impossibile cancellare la directory" ci sarei arrivato un po' prima.
Preferiresti i messaggi della ATI?
'Your ATIMPPIF.DLL is older than 2250.  But I forgive you.
CloseStream',0Ah,0
'Signal Win32 Event Semaphore!!!!!!!!!!!!!!!',0Ah,0
'MPPVXD:  Scream!!  We transferred more than we intended! Big Big
Error!',0Ah,0
'!! Why is someoen doing BM when I am doing BM? !!',0Dh,0Ah,0
'Wait a minute, the suspend count is screwed up!!',0Ah
Ti bastano? :-)
Kiuhnm

Chi scrive librerie per altri non può permettersi simili leggerezze...
Ti è mai capitato di creare un semplice programmino usa e getta che
poi però, piano piano, è cresciuto? Bhé cerchiamo di non fare questi
errori fin dall'inizio :-)


 errori fin dall'inizio :-)
Sě e l'ho dovuto riscrivere in C++ perchč quelle 10000 righe di C (tutte in
unico file...all'inizio ne aveva 200!) erano tutte intrecciate e non
funzionava piů niente :-(
Cmq. se il programma č piccolo e *non* č una libreria, puoi benissimo fare
quello che vuoi.
Kiuhnm

 uno senza saperne i nomi e le estensioni
findfirstfile ("c:\\path\\*",LPWIN32...)
però ci sono tantissimi esempi sul web basta usare google..
ciao

 findfirstfile ("c:\\path\\*",LPWIN32...)
Da dove esce questa funzione???
Kiuhnm

 Da dove esce questa funzione???
io parlo di questa tu non lo so...
HANDLE FindFirstFile(
  LPCTSTR lpFileName,  // pointer to name of file to search for
  LPWIN32_FIND_DATA lpFindFileData
                       // pointer to returned information
);
ciao

 HANDLE FindFirstFile(
Lo so, ma il C/C++ solitamente è case-sensitive :-)
Kiuhnm


P.S. Deduco che sia C/C++ da '\\', ma potrei sbagliarmi...comunque la
funzione esportata si chiama "FindFirstFileA" / "FindFirstFileW".
Kiuhnm

> Lo so, ma il C/C++ solitamente è case-sensitive :-)
a parte che non è detto che si debba per forza usare il case sensitive...
ma pensi che chi ha posto la domanda non ha capito di cosa si parlasse?
se evitassi di perdere tempo tu e farlo perdere agli altri forse sarebbe
meglio :))
bye :)

 wrote in message
news:3dM69.67514$lu5.1...@twister1.libero.it...

Non è tanto vero.
La funzione findfirstfile ha tutta l'aria di essere una funzione di una
libreria che ingloba l'API di Windows. I parametri potrebbero anche essere
leggermente diversi, quindi è buona norma usare il nome con la quale l'API
viene esportata e non quello utilizzato da un compilatore case-insensitive!
Per convenzione si può omettere la 'A' o la 'W' finale.
Kiuhnm