elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Enumerar directorio por FTP (WinAPI)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Enumerar directorio por FTP (WinAPI)  (Leído 1,638 veces)
mester

Desconectado Desconectado

Mensajes: 219


https://www.youtube.com/watch?v=IlY9C6pzxKc


Ver Perfil WWW
Enumerar directorio por FTP (WinAPI)
« en: 9 Diciembre 2015, 15:47 pm »

Hola.
Estoy haciendo un cliente de FTP para Windows y de momento me va bien a excepción de listar los archivos. Utilizo la siguiente función: https://msdn.microsoft.com/en-us/library/windows/desktop/aa384146(v=vs.85).aspx
Y la uso de esta manera:
Código
  1. ...
  2. TCHAR direct[MAX_PATH];
  3. DWORD det=MAX_PATH;
  4. WIN32_FIND_DATA met;
  5. do{//El socket es "conexion"
  6. FtpGetCurrentDirectory(conexion,direct,&det);
  7. if(FtpFindFirstFile(conexion,direct,&met,det,0)==NULL)
  8. printf("NULL\n");
  9. else
  10. printf("%s\n",met.cFileName);
  11. }while(InternetFindNextFile(conexion,(LPVOID)&met));
  12. ...
  13.  

Al ejecutar esta función solo me imprime la primera carpeta, y si vuelvo a ejecutarla me devulve NULL.

Gracias de antemano


En línea

Justicia es dar a cada uno lo que se merece
mester

Desconectado Desconectado

Mensajes: 219


https://www.youtube.com/watch?v=IlY9C6pzxKc


Ver Perfil WWW
Re: Enumerar directorio por FTP (WinAPI)
« Respuesta #1 en: 9 Diciembre 2015, 19:41 pm »

Ya lo he solucionado. De la siguiente manera:
Código
  1. HINTERNET sec;
  2. TCHAR direct[MAX_PATH];
  3. DWORD det=MAX_PATH;
  4. WIN32_FIND_DATA met;
  5. FtpGetCurrentDirectory(conexion,direct,&det); //Para determinar el directorio actual
  6. sec=FtpFindFirstFile(conexion,direct,&met,det,0); //Asignacion
  7. do{
  8. if(sec==NULL)
  9. printf("Acceso denegado\n");
  10. else
  11. printf("%s\n",met.cFileName);
  12. }while(InternetFindNextFile(sec,&met));
  13. _=0;
  14. InternetCloseHandle(sec);
  15.  

El problema principal era que la funcion:
Código
  1. sec=FtpFindFirstFile(conexion,direct,&met,det,0);
  2.  

Estaba dentro del bucle


En línea

Justicia es dar a cada uno lo que se merece
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Enumerar todos los archivos
Programación Visual Basic
^_^ 5 7,070 Último mensaje 4 Septiembre 2009, 12:09 pm
por Dessa
Enumerar y configurar los PCI-s
ASM
ño_ño 0 3,065 Último mensaje 5 Febrero 2010, 20:59 pm
por ño_ño
Equivalencia de función WINAPI unsigned int WINAPI myRun en Windows con Ubuntu
Programación C/C++
bertamax 2 3,109 Último mensaje 7 Agosto 2010, 16:27 pm
por bertamax
Enumerar carpetas de una carpeta compartida
Programación Visual Basic
Psyke1 1 1,886 Último mensaje 26 Noviembre 2012, 18:57 pm
por Psyke1
Ayuda: Enumerar ficheros
.NET (C#, VB.NET, ASP)
Tomas1982 5 2,588 Último mensaje 15 Septiembre 2016, 15:01 pm
por Lekim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines