Arbol
Publicado por Juan (35 intervenciones) el 19/04/2008 20:19:32
Con la siguiente codificación se consigue los nombres, fechas y tamaño de los ficheros de una determindada Carpeta.
Lo que me falta es el paso anterior. Esto es, ¿Cómo conseguir los nombres de las Carpetas, para de esta formas tener toda la información de un determinado disco?.
Dicho de ofra forma: Conseguir la información dada dada por el comando TREE del MS-DOS.
Sub Nombres_Archivos()
'Stop
Const Carpeta = "D:mama"
Dim FSO As Object
Dim FSOFolder As Object
Dim FSOfile As Object
Dim archivo As Long
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FSOFolder = FSO.GetFolder(Carpeta)
archivo = 1
With ActiveSheet
For Each FSOfile In FSOFolder.Files
.Range("a" & archivo) = FSOFolder & "" & FSOfile.Name
.Range("b" & archivo) = FSOfile.DateCreated
.Range("c" & archivo) = FSOfile.DateLastAccessed
.Range("d" & archivo) = FSOfile.DateLastModified
.Range("e" & archivo) = FSOfile.Size
ShowFileSize (FSOFolder)
.Range("f" & archivo) = FSOFolder
ShowShortName (FSOfile)
archivo = archivo + 1
Next
End With
End Sub
Sub ShowFileSize(filespec)
Dim fs As Object
Dim f As Object
Dim s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(filespec)
s = UCase(f.Name) & " is a " & f.Type
'MsgBox s, 0, "File Size Info"
End Sub
Lo que me falta es el paso anterior. Esto es, ¿Cómo conseguir los nombres de las Carpetas, para de esta formas tener toda la información de un determinado disco?.
Dicho de ofra forma: Conseguir la información dada dada por el comando TREE del MS-DOS.
Sub Nombres_Archivos()
'Stop
Const Carpeta = "D:mama"
Dim FSO As Object
Dim FSOFolder As Object
Dim FSOfile As Object
Dim archivo As Long
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FSOFolder = FSO.GetFolder(Carpeta)
archivo = 1
With ActiveSheet
For Each FSOfile In FSOFolder.Files
.Range("a" & archivo) = FSOFolder & "" & FSOfile.Name
.Range("b" & archivo) = FSOfile.DateCreated
.Range("c" & archivo) = FSOfile.DateLastAccessed
.Range("d" & archivo) = FSOfile.DateLastModified
.Range("e" & archivo) = FSOfile.Size
ShowFileSize (FSOFolder)
.Range("f" & archivo) = FSOFolder
ShowShortName (FSOfile)
archivo = archivo + 1
Next
End With
End Sub
Sub ShowFileSize(filespec)
Dim fs As Object
Dim f As Object
Dim s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(filespec)
s = UCase(f.Name) & " is a " & f.Type
'MsgBox s, 0, "File Size Info"
End Sub
Valora esta pregunta


0