Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Enagymo en 1 Agosto 2010, 02:38 AM

Título: Problema en apertura de archivos en Borland C++
Publicado por: Enagymo en 1 Agosto 2010, 02:38 AM
El problema que tengo, es que no puedo manejar archivos que se encuentren en el Escritorio o en algunas de sus sub-carpetas, en otras rutas funciona perfectamente, estoy programando en C, desde el Borland Turbo C++ 3.0.

Luego intenté desde el Dev-Cpp 4.9.9.2, con el mismo código y funciona, aquí les dejo el código:

#include <stdio.h>

int main(){
FILE *Archivo;
if((Archivo = fopen("C:\\WINDOWS\\Escritorio\\TxtEnC.txt", "wt")) == NULL){
printf("Error\n");
}
else{
printf("Funciona\n");
}
getchar();
fclose(Archivo);
return 0;
}


¿Alguna idea de por qué sucede esto?

Gracias. ^^
Título: Re: Problema en apertura de archivos en Borland C++
Publicado por: MIG80 en 1 Agosto 2010, 03:33 AM
Turbo C++ 3.0 es un compilador para DOS. En DOS los nombres de archivos y directorios tienen como maximo 8 caracteres para el nombre del archivo y 3 más para la extensión. Por consiguiente para abrir un archivo que tenga un nombre largo o con espacios se debe pasar a la función fopen() el nombre MS-DOS del archivo que en este caso debe ser algo como:

c:\\WINDOWS\\Escrit~1\\TxtEnC.txt

Título: Re: Problema en apertura de archivos en Borland C++
Publicado por: Enagymo en 1 Agosto 2010, 03:38 AM
Perfecto, ese era el problema, gracias por la pronta respuesta. ^^
Título: Re: Problema en apertura de archivos en Borland C++
Publicado por: MIG80 en 1 Agosto 2010, 03:42 AM
de nada! :D