| |
|
|
| |
-
Windows Script Host - VBScript - Sistema de archivos - Listar el contenido de una carpeta
-
El siguiente ejemplo, se listará las subcarpetas y los archivos. Este listará el primer nivel en la estructura de la carpeta.
Lo primero es declarar las variables correspondientes y referenciar "FileSystemObject". El metodo "GetFolder( )" tomará
referencia de la carpeta a que se refiere, el cual será guardada en la variable "carpeta". A continuación, en el primer bucle
"For Each" recorrerá el conjunto de "Files" del objeto "Folder". En el siguiente bucle "For Each" se
recorrerá el conjunto de "SubFolders", el cual contiene los subdirectorios de la carpeta en cuestión. Al final se editarán
los nombres de las carpetas.
' leercarpeta.vbs
' ================================================
Option Explicit
' declaracion de variables
Dim FSO, directorio, subdirectorio
Dim archivo
' declaracion de constantes
Const nombredirectorio="c:\temp"
' crear objeto
Set FSO = CreateObject("Scripting.FileSystemObject")
' referencia al directorio
Set directorio = FSO.GetFolder(nombredirectorio)
' salida
WScript.Echo "- -Archivos- -:"
' todos los archivos
For Each archivo In directorio.Files
WScript.Echo archivo.Name
Next
WScript.Echo "- -Carpetas- -:"
' todos los subdirectorios
For Each subdirectorio In directorio.SubFolders
WScript.Echo subdirectorio.Name
Next
Listar la estructura de un directorio
Para listar la estructura de un directorio se requiere de la recursión, para lo cual en el ejemplo siguiente, se implementará el metodo
"listadirectorio( )".
' listadirectorio.vbs
' ================================================
Option Explicit
' llamada de la Runtime
' definir constante
Const tipificacioncarpeta="."
listadirectorio tipificacioncarpeta
Sub listadirectorio(nombrecarpeta)
' declaracion de variable
Dim FSO, carpeta, subcarpeta
' creacion de objeto
Set FSO = CreateObject("Scripting.FileSystemObject")
' De existir el directorio
If FSO.FolderExists(nombrecarpeta) Then
' traer el directorio
Set carpeta = FSO.GetFolder(nombrecarpeta)
' listar todos los subcarpetas
For Each subcarpeta In carpeta.SubFolders
WScript.Echo subcarpeta.Name
' llamada reiterada de subdirectorio
listadirectorio subcarpeta
Next
End If
End Sub
Ademas de poder denignarse absolutamente los directorios, es posible reseñarlos relativamente. Así las cosas, puede designarse el directorio
actual con un punto ("."), el directorio superior con dos puntos seguidos ("..") y el directorio raiz con la barra inversa ("\").
 |
|
Ultima actualisación: Tue, 24 ▪ May ▪ 2011
|
|
|
|