Hace un tiempo escribí sobre una manera (no portable, pues sólo funcionaría en sistemas Unix) de llevar algo así acabo. Te pongo el link (para que veas el contexto) y el código (es una función).
http://foro.elhacker.net/empty-t350434.0.html
Código (cpp) [Seleccionar]
int existsFile(char* filename) {
FILE* f = NULL;
f = fopen(filename,"r");
if (f == NULL && errno == ENOENT)
return 0;
else {
fclose(f);
return 1;
}
}
Como puedes comprobar, originalmente era una función para C (si quieres, puedes usarla en C++ tal cual o adaptarla como más te convenga). Se incluye previamente la librería errno.h, que no tiene definidos los mismos códigos de error en Unix y en Windows (ENOENT corresponde al error genérico "No such file or directory", que si no me equivoco, no está definido en Windows). Si quisieras hacer algo parecido en Windows, tendrás que incorporar alguna librería propia de ese S.O. (es posible que haya una manera portable de hacer esto, pero ahora mismo estoy enfermo y no puedo pensar con mucha claridad, así que cedo el testigo a otra persona >_<).
Saludos, jefe.
EDITO: No leí tu edito >.<, lo siento