Gracias nuevamente
He tomado algunos de tus consejos, y he decidido dejarlo así:
Cita: LPCSTR ExtractFileName (LPCSTR path)
{
char *p;
LPCSTR name;
p= strchr (path, '\\');
while (p!=NULL)
{
name = p+1;
p= strchr (p+1, '\\');
}
if (!*name) return 0;
else return name;
}
Ahora, además he hecho una función para verificar si un archivo existe. El tema, es que lo he hecho con FindFirstFile:
Cita: BOOL VerifyFilePath(LPCSTR path)
{
if(strchr(path, '*')!=0 | strchr(path, '?')!=0) return false; // para bloquear los comodines
WIN32_FIND_DATA FindFileData;
HANDLE verify;
verify = FindFirstFile(path, &FindFileData);
if (verify == INVALID_HANDLE_VALUE) return false;
if (strcmpi(ExtractFileName(path),FindFileData.cFileN ame)==0) {
FindClose(verify);
return true;
}
else {
FindClose(verify);
return false;
}
}
A mí me funciona bien, pero por ahí tu vez algún posible error o conoces una mejor manera de hacerlo.
Salu2