elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 03:18  


Tema destacado: Recuperar cuenta de Google, GMail, Youtube

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  [DUDA] sobre apis Findnextfile en vb6
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [DUDA] sobre apis Findnextfile en vb6  (Leído 430 veces)
AlxSpy

Desconectado Desconectado

Mensajes: 137


Ver Perfil
[DUDA] sobre apis Findnextfile en vb6
« en: 30 Marzo 2011, 18:10 »

hola vi las apis para listar archivos, hice este codigo:

Código
' 1 command1 + 1 text1
Option Explicit
 
Private Type FILETIME
   dwLowDateTime As Long
   dwHighDateTime As Long
End Type
'Estructura WIN32_FIND_DATA para info de archivos
Private Type WIN32_FIND_DATA
   dwFileAttributes As Long
   ftCreationTime As FILETIME
   ftLastAccessTime As FILETIME
   ftLastWriteTime As FILETIME
   nFileSizeHigh As Long
   nFileSizeLow As Long
   dwReserved0 As Long
   dwReserved1 As Long
   cFileName As String * 300
   cAlternate As String * 14
End Type
 
 
 
 
Private Declare Function FindFirstFile _
   Lib "kernel32" _
   Alias "FindFirstFileA" ( _
       ByVal lpFileName As String, _
       lpFindFileData As WIN32_FIND_DATA) As Long
 
'Api FindNextFile (busca el siguiente)
Private Declare Function FindNextFile _
   Lib "kernel32" _
   Alias "FindNextFileA" ( _
       ByVal hFindFile As Long, _
       lpFindFileData As WIN32_FIND_DATA) As Long
 
'Api GetFileAttributes (para recuperar los atributos de los archivos)

 
Private Declare Function FindClose _
   Lib "kernel32" ( _
       ByVal hFindFile As Long) As Long
 
Private Sub Command1_Click()
   Dim hFind As Long, RNext As Long, tmP As String, WFD As WIN32_FIND_DATA, Archivo As String, P As Long, Total As Long
   hFind = FindFirstFile("d:\*.*", WFD)
   tmP = "hFind: " & hFind & vbCrLf
   RNext = FindNextFile(hFind, WFD)
   While RNext <> 0
       Total = Total + 1
       tmP = tmP & "rNext: " & RNext & vbCrLf
       Archivo = WFD.cFileName
       Archivo = Replace(Archivo, Chr(0), "") 'borra los nulos
       
       tmP = tmP & Archivo & vbCrLf
       RNext = FindNextFile(hFind, WFD)
   Wend
   FindClose hFind
   Text1.Text = "Total archivos: " & Total & vbCrLf & tmP
End Sub
 

ejecuto el codigo , y el resultado es una lista en la que se repiten los nombres de los ficheros, luego intente ejecutandolo compilado y el resultado es el mismo:


http://hosting11.imagecross.com/image-hosting-64/3767error.jpg


*luego encontre la solucion cambiando el codigo de esta manera:

Código
Private Sub Command1_Click()
   Dim hFind As Long, RNext As Long, tmP As String, WFD As WIN32_FIND_DATA, Archivo As String, P As Long, Total As Long
   hFind = FindFirstFile("d:\*.*", WFD)
   tmP = "hFind: " & hFind & vbCrLf
   RNext = FindNextFile(hFind, WFD)
   While RNext <> 0
       Total = Total + 1
       tmP = tmP & "rNext: " & RNext & vbCrLf
       Archivo = WFD.cFileName
       P = InStr(1, Archivo, Chr(0))
       If P > 0 Then Archivo = Left(Archivo, P - 1)
 
       tmP = tmP & Archivo & vbCrLf
       RNext = FindNextFile(hFind, WFD)
   Wend
   FindClose hFind
   Text1.Text = "Total archivos: " & Total & vbCrLf & tmP
End Sub


el resultado:

http://hosting11.imagecross.com/image-hosting-64/4585solucion.jpg


*weno, no entiendo si los 2 codigos hacen lo mismo por que uno falla y el otro funciona bien, alguien podria explicar?


En línea
79137913


Desconectado Desconectado

Mensajes: 780


4 Esquinas


Ver Perfil WWW
Re: [DUDA] sobre apis Findnextfile en vb6
« Respuesta #1 en: 30 Marzo 2011, 18:59 »

HOLA!!!

Es necesaria velocidad?

si no es asi :
Código
Private Sub Form_Load()
Dim Archivo As String
   Archivo = Dir("C:")
   Do Until Archivo = ""
       Debug.Print Archivo
       Archivo = Dir
   Loop
End Sub

P.D: Conste que no es la mejor manera de hacerlo, pero es facil.

GRACIAS POR LEER!!!


« Última modificación: 30 Marzo 2011, 19:10 por 79137913 » En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*                                                          Resumenes Cs.Economicas
AlxSpy

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: [DUDA] sobre apis Findnextfile en vb6
« Respuesta #2 en: 31 Marzo 2011, 16:18 »

pense que el dir era más veloz  :xD , y si es más facil hacerlo de esa manera.
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda existencial sobre las apis
Programación Visual Basic
fraktal 6 2,175 Último mensaje 6 Octubre 2006, 01:21
por fraktal
Duda sobre las APIS
Hacking Avanzado
askrator 4 1,704 Último mensaje 4 Diciembre 2008, 20:52
por askrator
Una duda sobre ASM y las APIS « 1 2 »
ASM
theghost_te 17 2,645 Último mensaje 15 Noviembre 2010, 13:30
por Eternal Idol
duda sobre apis de windows de 32 bits
Programación General
AlxSpy 2 837 Último mensaje 27 Agosto 2011, 02:32
por AlxSpy
Duda con APIs
Windows
S3kh 4 457 Último mensaje 14 Septiembre 2011, 23:46
por S3kh
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines