Como saber si una carpeta esta vacia

Iniciado por Fabricio, 7 Abril 2009, 20:02 PM

0 Miembros y 3 Visitantes están viendo este tema.

Fabricio

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  :-\

YST

#1
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 (VB) [Seleccionar]
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type
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 * 260
    cAlternate As String * 14
End Type
Dim Find As WIN32_FIND_DATA
Dim HandleBusqueda As Long

Public Function CapetaVacia(Ruta As String) As Boolean
HandleBusqueda = FindFirstFile(Ruta & "\*", Find)
FindNextFile HandleBusqueda, Find
If Left(Find.cFileName, 2) = ".." Then
FindNextFile HandleBusqueda, Find
Else
End If
If Left(Find.cFileName, 2) = ".." Then
CapetaVacia = True
Else
CapetaVacia = False
End If
End Function


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

Fabricio

#2
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

xkiz ™


Código (vb) [Seleccionar]

Private Sub Form_Load()
Dim Vacio As String
Vacio = Dir("C:\Informacion\CarpetaDatos\*.*")

If Vacio = "" Then
MsgBox "no existe ningun archivo en esa carpeta"
End If
End Sub

Fabricio


YST

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


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

Fabricio

#6
Prueben este codigo a ver que les parece


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

Novlucker

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

Saludos
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

el uso del objeto fso consume mas recursos ?????
saludos

LeandroA

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