Pessoal,
Usei da seguinte função para saber se no diretório existe determinados arquivos:
dado = _findfirst("C:\\CLIENT\\runtime\\restart*.log", &struct_arq);
Se a variável dado for igual à -1L é porque não há arquivos encontrados. Mas o que eu queria saber mesmo é, caso sejam encontrados arquivos, QUANTOS foram?
Se alguém puder ajudar…
Obrigada!
A resposta simples é “você tem de percorrer a lista de arquivos”. Basicamente, você teria de fazer algo como:
int nArquivos = 0;
struct _finddatai64_t fileinfo;
int ret;
intptr_t handle = _findfirsti64 ("*.c", &fileinfo);
if (handle != -1) {
do {
nArquivos ++;
printf ("Arquivo %d - %s\n", nArquivos, fileinfo.name);
ret = _findnexti64 (handle, &fileinfo);
} while (ret == 0);
_findclose (handle);
}
Por favor, olhe a documentação das rotinas no MSDN. Ele é sua Bíblia e seu Alcorão no caso de usar as APIs do Microsoft C++ 
Essa variável “ret” significa o que? O termo em si…
Vlw!
Eu costumo usar “ret” para um valor de retorno que estou com preguiça de dar um nome. Neste caso, _findnexti64 retorna 0 se OK, e algo diferente de zero se houver algum problema.
Nesse caso em particular, eu poderia escrever:
int nArquivos = 0;
struct _finddatai64_t fileinfo;
int ret;
intptr_t handle = _findfirsti64 ("*.c", &fileinfo);
if (handle != -1) {
do {
nArquivos ++;
printf ("Arquivo %d - %s\n", nArquivos, fileinfo.name);
} while (SUCCEEDED (_findnexti64 (handle, &fileinfo)));
_findclose (handle);
}
Neste caso, SUCCEEDED é uma macro do Windows SDK que retorna true se o valor for zero, e false se o valor for diferente de zero.
Se você olhou a documentação, _findnexti64 retorna 0 se OK, e diferente de zero se houve algum problema (do tipo “acabaram-se os arquivos”).