Utilizzo le chiamate API di Windows FindFirstFile e FindNextFile per cercare file corrispondenti a una determinata stringa di caratteri jolly in una directory. Ad esempio, potrei voler trovare tutti i file XML in una directory, quindi cerco il pattern "* .xml".Esiste un'alternativa all'API FindFirstFile/FindNextFile di Windows che non esegue la ricerca di nomi di file brevi?
Sto riscontrando il problema che se sto cercando un'estensione di 3 lettere e l'estensione di un file inizia con quell'estensione di 3 lettere, verrà ripresa dalla mia ricerca, anche se l'estensione contiene più caratteri dopo i primi 3. Ad esempio, se il mio file è denominato somelongname.xmlaaaa, questo verrà preso dalla ricerca di "* .xml". Il nome breve di quel file è somelo ~ 1.xml, che corrisponde alla mia stringa jolly.
Potrei fare il mio jolly per risolvere questo problema, ma presumibilmente un'API di Windows sarebbe in grado di farlo in modo più efficiente di quanto avrei potuto, e il mio codice sarebbe stato più semplice. Per quanto posso dire, non c'è un modo per forzare queste funzioni a ignorare i nomi brevi. C'è qualche API Windows espone con questa funzionalità?
Interessante. Devo supportare Windows XP, quindi probabilmente non posso fare affidamento su questa funzionalità. Sfortunatamente, il fatto che questo sia stato aggiunto a questa API in Windows 7 probabilmente indica che non esiste in nessun'altra API prima di allora. –
Sembra che sia così. Mi spiace di averti fallito :) E grazie per la modifica, @Rob – JoeFish
Si scopre che questa documentazione è molto fuorviante. La ricerca troverà comunque i file che corrispondono al nome breve, anche se si passa in FindExInfoBasic. Semplicemente non includerà il nome del file breve nel membro cAlternateFileName della struttura WIN32_FIND_DATA. –