Los rincones del API Win32: WinInet y FTP - Manipular la estructura de directorios
27 de Agosto de 2005
Programación estructurada
El equipo remoto tendrá una estructura de directorios como cualquier sistema operativo, en la cual nos podremos mover y manipular. Como en UNIX y MS-DOS, siempre estaremos situados en un directorio activo, en el cual se ejecutarán todas las operaciones que realicemos. Podemos averiguar cual es nuestro directorio activo a través de la función FtpGetCurrentDirectory: BOOL FtpGetCurrentDirectory(
HINTERNET hConexión,
LPTSTR lpszDirectorioActivo,
LPDWORD lpdwLongitudDirectorio
);
La función retornará TRUE o FALSE dependiendo del éxito o fracaso.
Como es lógico, además de averiguar el directorio activo, también podremos cambiar este directorio activo, a través de la función SetCurrentDirectory:
BOOL FtpGetCurrentDirectory( HINTERNET hConexión, LPCTSTR lpszNuevoDirectorio );
La función retorna TRUE si ha tenido éxito o FALSE en caso de error. En caso de retornar error, una de las posibles causas es que no tenemos permisos para acceder a dicho directorio. En tal caso, podemos hacer uso de la función InternetGetLastResponseInfo (de la que ya hablamos en el artículo WinInet y HTTP∞) para obtener el código de error retornado por el servidor.
Si en un momento dado queremos crear un nuevo directorio, debemos hacerlo a través de la función FtpCreateDirectory, con la siguiente sintaxis:
BOOL FtpCreateDirectory( HINTERNET hConexión, LPCTSTR lpszNombreDirectorio );
La función retorna TRUE o FALSE. Podremos llamar, como ya hemos dicho, a la función InternetGetLastResposeInfo para averiguar el código y texto del mensaje de error retornado por el servidor.
Y lógicamente, también se podrá borrar un directorio (y todo su contenido) a través de la siguiente función:
BOOL FtpCreateDirectory( HINTERNET hConexión, LPCTSTR lpszDirectorio );
Esta función, como el resto, retornará TRUE o FALSE dependiendo del éxito o fracaso.
- hConexión: un descriptor de conexión obtenido a través de InternetConnect.
- lpszDirectorioActivo: un puntero a una cadena en la que se almacenará la ruta absoluta del directorio activo. Hay que tener en cuenta que los servidores FTP utilizan el separador de UNIX (“/”) y no la barra invertida de Windows (“\”).
- lpdwLongitudDirectorio: un puntero a un valor de 32 bits en el que se pasa la longuitud máxima de la cadena lpszDirectorioActivo. Cuando la función retorna, en este valor se almacena el número de caracteres copiados.
La función retornará TRUE o FALSE dependiendo del éxito o fracaso.
Como es lógico, además de averiguar el directorio activo, también podremos cambiar este directorio activo, a través de la función SetCurrentDirectory:
BOOL FtpGetCurrentDirectory( HINTERNET hConexión, LPCTSTR lpszNuevoDirectorio );
- hConexión: un descriptor de conexión obtenido a través de InternetConnect.
- lpszNuevoDirectorio: un puntero a una cadena en la que se almacenará la ruta (absoluta o relativa) del nuevo directorio activo.
La función retorna TRUE si ha tenido éxito o FALSE en caso de error. En caso de retornar error, una de las posibles causas es que no tenemos permisos para acceder a dicho directorio. En tal caso, podemos hacer uso de la función InternetGetLastResponseInfo (de la que ya hablamos en el artículo WinInet y HTTP∞) para obtener el código de error retornado por el servidor.
Si en un momento dado queremos crear un nuevo directorio, debemos hacerlo a través de la función FtpCreateDirectory, con la siguiente sintaxis:
BOOL FtpCreateDirectory( HINTERNET hConexión, LPCTSTR lpszNombreDirectorio );
- hConexión: un descriptor de conexión obtenido a través de InternetConnect.
- lpszNuevoDirectorio: un puntero a una cadena en la que se indica la ruta (absoluta o relativa) del directorio a crear. Para dar el nombre a la carpeta hay que tener en cuenta las normas del sistema de archivos del servidor, normalmente UNIX o Windows.
La función retorna TRUE o FALSE. Podremos llamar, como ya hemos dicho, a la función InternetGetLastResposeInfo para averiguar el código y texto del mensaje de error retornado por el servidor.
Y lógicamente, también se podrá borrar un directorio (y todo su contenido) a través de la siguiente función:
BOOL FtpCreateDirectory( HINTERNET hConexión, LPCTSTR lpszDirectorio );
- hConexión: un descriptor de conexión obtenido a través de InternetConnect.
- lpszDirectorio: un puntero a una cadena en la que se indica la ruta (absoluta o relativa) del directorio a borrar. Es importante saber que no podemos borrar el directorio si es nuestro directorio activo, por lo que es recomendable hacer una llamada a FtpSetCurrentDirectory antes de realizar el borrado.
Esta función, como el resto, retornará TRUE o FALSE dependiendo del éxito o fracaso.
Valora este capítulo:
Autor y licencia de 'Los rincones del API Win32: WinInet y FTP - Manipular la estructura de directorios'
|
Opiniona sobre 'Los rincones del API Win32: WinInet y FTP - Manipular la estructura de directorios' (9)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este tutorial |
Wikis relacionados con 'Los rincones del API Win32: WinInet y FTP - Manipular la estructura de directorios'
Comienzo con un nuevo tema dentro dentro de la serie Los rincones del API Win32....
Más »
Entramos en temas interesantes: el acceso a recursos remotos a través del protocolo de aplicación...
Más »
En el anterior curso dejamos muchos temas en el tintero, así que voy a terminar...
Más »
Damos una visión detallada de una de las características más interesantes de esta tecnología de...
Más »
Curso que profundiza en el gestor de montones (o montículos) dentro de Win32, así como...
Más »


