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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Como saber si una carpeta esta vacia
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Como saber si una carpeta esta vacia  (Leído 15,428 veces)
Fabricio

Desconectado Desconectado

Mensajes: 115


Ver Perfil
Como saber si una carpeta esta vacia
« en: 7 Abril 2009, 20:02 pm »

Hola a todos hay algun codigo de VB 6 que me permita saber si una carpeta esta vacia  :huh: yo comosco la ruta de la carpeta a exsaminar y deseo saber si tiene archivos u otras carpetas de contenido

saludos
muchas gracias  :-\


En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Como saber si una carpeta esta vacia
« Respuesta #1 en: 7 Abril 2009, 20:13 pm »

Podrias ver con FindFirstFile si hay archivos o carpetas en la ruta , dame unos minutos y te hago un source.

EDIT:

Lo prometido es deuda , la función es 100% funcional , el parametro que hay que pasarle es lla ruta de la carpeta sin \ ni nada adelante por ejemplo para revisar C:\ ponemos C: .

Código
  1. Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
  2. Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
  3. Private Type FILETIME
  4.    dwLowDateTime As Long
  5.    dwHighDateTime As Long
  6. End Type
  7. Private Type WIN32_FIND_DATA
  8.    dwFileAttributes As Long
  9.    ftCreationTime As FILETIME
  10.    ftLastAccessTime As FILETIME
  11.    ftLastWriteTime As FILETIME
  12.    nFileSizeHigh As Long
  13.    nFileSizeLow As Long
  14.    dwReserved0 As Long
  15.    dwReserved1 As Long
  16.    cFileName As String * 260
  17.    cAlternate As String * 14
  18. End Type
  19. Dim Find As WIN32_FIND_DATA
  20. Dim HandleBusqueda As Long
  21.  
  22. Public Function CapetaVacia(Ruta As String) As Boolean
  23. HandleBusqueda = FindFirstFile(Ruta & "\*", Find)
  24. FindNextFile HandleBusqueda, Find
  25. If Left(Find.cFileName, 2) = ".." Then
  26. FindNextFile HandleBusqueda, Find
  27. Else
  28. End If
  29. If Left(Find.cFileName, 2) = ".." Then
  30. CapetaVacia = True
  31. Else
  32. CapetaVacia = False
  33. End If
  34. End Function


« Última modificación: 7 Abril 2009, 20:38 pm por YST » En línea



Yo le enseñe a Kayser a usar objetos en ASM
Fabricio

Desconectado Desconectado

Mensajes: 115


Ver Perfil
Re: Como saber si una carpeta esta vacia
« Respuesta #2 en: 7 Abril 2009, 20:56 pm »

Hola YST  muchas gracias por responder tan rapido  :D
probe tu codigo... yo necesito saber si la carpeta ubicada en C:\Informacion\CarpetaDatos posee archivos o carpetas dentro
como le paso la ruta segun tu cadigo  :huh:

gracias
saludos
« Última modificación: 7 Abril 2009, 20:59 pm por fabricioAngel » En línea

xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: Como saber si una carpeta esta vacia
« Respuesta #3 en: 7 Abril 2009, 21:03 pm »


Código
  1. Private Sub Form_Load()
  2. Dim Vacio As String
  3. Vacio = Dir("C:\Informacion\CarpetaDatos\*.*")
  4.  
  5. If Vacio = "" Then
  6. MsgBox "no existe ningun archivo en esa carpeta"
  7. End If
  8. End Sub
  9.  
En línea

Fabricio

Desconectado Desconectado

Mensajes: 115


Ver Perfil
Re: Como saber si una carpeta esta vacia
« Respuesta #4 en: 7 Abril 2009, 21:06 pm »

Muchas gracias a xkiz  y a YST
 :-\
En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Como saber si una carpeta esta vacia
« Respuesta #5 en: 7 Abril 2009, 21:09 pm »

Le pasas C:\Informacion\CarpetaDatos , :xD no se me ocurrio hacerlo con dir :P
En línea



Yo le enseñe a Kayser a usar objetos en ASM
Fabricio

Desconectado Desconectado

Mensajes: 115


Ver Perfil
Re: Como saber si una carpeta esta vacia
« Respuesta #6 en: 7 Abril 2009, 21:10 pm »

Prueben este codigo a ver que les parece
Código:

Private Sub Command1_Click()

Dim fs As Object
Dim carpeta As Object
Dim archivo As Object
Dim cantidad As Integer

Set fs = CreateObject("Scripting.FileSystemObject")
Set carpeta = fs.GetFolder("C:\Info\Log")
Set archivo = carpeta.Files
cantidad = archivo.Count
If cantidad > 0 Then
    MsgBox cantidad
End If

End Sub
« Última modificación: 7 Abril 2009, 21:12 pm por fabricioAngel » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Como saber si una carpeta esta vacia
« Respuesta #7 en: 7 Abril 2009, 21:11 pm »

También sirve, solo que hace uso del objeto FSO  :rolleyes:

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Fabricio

Desconectado Desconectado

Mensajes: 115


Ver Perfil
Re: Como saber si una carpeta esta vacia
« Respuesta #8 en: 7 Abril 2009, 21:13 pm »

el uso del objeto fso consume mas recursos ?????
saludos
En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: Como saber si una carpeta esta vacia
« Respuesta #9 en: 7 Abril 2009, 21:14 pm »

Private Declare Function PathIsDirectoryEmpty Lib "shlwapi.dll" Alias "PathIsDirectoryEmptyA" (ByVal pszPath As String) As Long

Private Sub Form_Load()
MsgBox PathIsDirectoryEmpty("C:\Documents and Settings\Administrador\Escritorio\Nueva carpeta")
End Sub

yo opto por esta ya que te va a poner si hay un archivo oculto o una carpeta vasia.

Saludos
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines