Buenas, alguno sabe que sentencia puedo usar en C++ para verificar si cierto archivo existe y dependiendo de la respuesta hacer cierta accion? Basicamente lo que necesito es:
Si(Archivo_Existe_en_la_ruta)
hago_algo()
sino
hago_otra_cosa()
He leido en varios sitios pero ninguno resuelve mi duda, de antemano gracias.
PD: No me refiero a si el archivo pudo ser abierto con exito o no, sino que si existe o no, gracias!!
Puedes usar fopen (http://www.cplusplus.com/reference/clibrary/cstdio/fopen/ (http://www.cplusplus.com/reference/clibrary/cstdio/fopen/)) perfectamente.
Cita de: k3r00t en 29 Julio 2012, 01:18 AMNo me refiero a si el archivo pudo ser abierto con exito o no, sino que si existe o no,
Utilizando solo la biblioteca estándar de C o C++ no es posible realizar la operación que mencionas, debes utilizar el API de tu sistema operativo.
Cita de: Queta en 29 Julio 2012, 01:43 AM
Puedes usar fopen perfectamente.
No es correcto utilizar "fopen" porque:
A) Si esta tiene éxito el archivo existe, OK.
B) Si no tiene éxito no se puede asumir lo contrario (el archivo no existe) ya que la función puede fallar por otras razones (falla del dispositivo, falta de privilegios, etc.).
Un saludo
Hola k3r00t.
Si estas utilizando windows podes utilizar la función API FindFirstFile , por ejemplo:
#include <stdio.h>
#include <windows.h>
bool FileExists(const TCHAR *aName);
int main() {
if (FileExists("C:\\ARCHIVO.TXT"))
printf("Existe, hacer algo");
else
printf("No existe, hacer otra cosa");
return 0;
}
bool FileExists(const TCHAR *aName) {
WIN32_FIND_DATA lpFindFileData;
if (FindFirstFile(aName, &lpFindFileData ) == INVALID_HANDLE_VALUE)
return false;
return true;
}
Saludos.