comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

File Manager

  • 0 Respuestas
  • 2505 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 159
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
« en: Febrero 27, 2011, 05:47:05 pm »
Bueno, este es un simple modulo con el que puedes obtener los archivos y direcctorios de una ruta y tambien enumerar los discos.  El código esta creado por mi.

Código: Visual Basic
  1. Option Explicit
  2. Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
  3. Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
  4. Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
  5. Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
  6. Private Declare Function GetLogicalDrives Lib "kernel32" () As Long
  7.  
  8. Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
  9.  
  10. Private Const MAX_PATH = 260
  11. Private Const MAXDWORD = &HFFFF
  12. Private Const INVALID_HANDLE_VALUE = -1
  13.  
  14. Private Type FILETIME
  15.     dwLowDateTime As Long
  16.     dwHighDateTime As Long
  17. End Type
  18. Private Type WIN32_FIND_DATA
  19.      dwFileAttributes As Long
  20.      ftCreationTime As FILETIME
  21.      ftLastAccessTime As FILETIME
  22.      ftLastWriteTime As FILETIME
  23.      nFileSizeHigh As Long
  24.      nFileSizeLow As Long
  25.      dwReserved0 As Long
  26.      dwReserved1 As Long
  27.      cFileName As String * MAX_PATH
  28.      cAlternate As String * 14
  29. End Type
  30.  
  31. Public Function Unidades() As String
  32.     Dim Retorno As Long
  33.     Dim i As Long
  34.     Dim Discos As String
  35.  
  36.     Retorno = GetLogicalDrives
  37.  
  38.     For i = 0 To 25
  39.         If (Retorno And 2 ^ i) <> 0 Then
  40.             Discos = Discos & "%%%%" & Chr$(65 + i)
  41.          End If
  42.     Next i
  43.  
  44.     Unidades = Discos
  45. End Function
  46.  
  47. Public Function Nulos(Cadena As String) As String
  48.     If InStr(Cadena, Chr(0)) <> 0 Then
  49.         Cadena = Left(Cadena, InStr(Cadena, Chr(0)) - 1)
  50.     End If
  51.     Nulos = Cadena
  52. End Function
  53.  
  54. Public Function Archivos(Ruta As String) As String
  55.     Dim WFD As WIN32_FIND_DATA
  56.     Dim Inicio As Long
  57.     Dim Seguimos As Long
  58.     Dim ListaArchivos As String
  59.  
  60.     Inicio = FindFirstFile(Ruta & "*", WFD)
  61.     If Inicio = INVALID_HANDLE_VALUE Then
  62.         Exit Function
  63.     End If
  64.  
  65.     Seguimos = True
  66.  
  67.     Do While Seguimos
  68.         If GetFileAttributes(Ruta & WFD.cFileName) = FILE_ATTRIBUTE_DIRECTORY Then
  69.             ListaArchivos = ListaArchivos & Nulos(WFD.cFileName)
  70.             ListaArchivos = ListaArchivos & "$$$$DIREC####"' si es un directorio se añade $$$$DIREC
  71.        Else
  72.             ListaArchivos = ListaArchivos & Nulos(WFD.cFileName)
  73.             ListaArchivos = ListaArchivos & "####"
  74.  
  75.         End If
  76.         Seguimos = FindNextFile(Inicio, WFD)
  77.     Loop
  78.  
  79.     FindClose Inicio
  80.  
  81.     Archivos = ListaArchivos
  82. End Function
  83.  

salu2!

« Última modificación: Mayo 12, 2014, 03:30:17 pm por Expermicid »

 

¿Te gustó el post? COMPARTILO!