VBA GetFolder & GetFile (Obtener propiedades de archivo y carpeta)

Este tutorial demostrará cómo utilizar los métodos GetFolder y GetFile de FileSystemObject.

Obtenga propiedades de carpetas y archivos con VBA FileSystemObject

El método GetFolder devuelve un objeto Folder correspondiente a la carpeta en una ruta especificada y le permite acceder a sus propiedades. El método GetFile hace lo mismo con el archivo especificado.

Establecer referencia de VBA

Primero, al usar FileSystemObjects, es posible que deba establecer una referencia a la biblioteca de tiempo de ejecución de secuencias de comandos VB: abra el Editor de Visual Basic (ALT + F11), seleccione Herramientas> Referencias en el menú desplegable y marque la casilla de verificación de 'Microsoft Scripting Runtime'.

FileSystemObject

En segundo lugar, debe crear FileSystemObject:

12 Atenuar FSO como nuevo FileSystemObjectEstablecer FSO = CreateObject ("Scripting.FileSystemObject")

Ahora tiene acceso a GetFolder y los otros métodos FileSystemObject.

Uso del método GetFolder

Después de especificar la carpeta a la que desea acceder

1 Establecer fld = FSO.GetFolder ("C: \ Src \")

puedes copiarlo:

1 fld. Copiar "C: \ NewFolder \"

Muévelo:

1 fld.Move "C: \ NewFolder \"

bórralo:

1 fld.Eliminar

o crea un nuevo archivo de texto en él:

1 fld.CreateTextFile "NewTextFile.txt"

Al utilizar este método, obtiene acceso a las propiedades de la carpeta, como sus atributos (fld.Attributes), la fecha y hora en que se creó (fld.DateCreated), el último acceso (fld.DateLastAccessed), la última modificación (fld.DateLastModified) ), la letra de su unidad (fld.Drive), su nombre y nombre corto (fld.Name, fld.ShortName), su ruta y ruta corta (fld.Path, fld.ShortPath), su tamaño (fld.Size), su type (fld.Type), su carpeta principal (fld.ParentFolder), verifique si es una carpeta raíz (fld.IsRootFolder) o puede recorrer, contar, etc. sus archivos (fld.Files) o subcarpetas (fld. Subcarpetas).

Poner todo esto junto en un procedimiento se vería así:

123456789101112131415161718192021222324 Sub FSOGetFolder ()Atenuar FSO como nuevo FileSystemObjectEstablecer FSO = CreateObject ("Scripting.FileSystemObject")Establecer fld = FSO.GetFolder ("C: \ Src \")Debug.Print fld.DateCreatedDebug.Print fld.DriveDebug.Print fld.NameDebug.Print fld.ParentFolderDebug.Print fld.PathDebug.Print fld.ShortPathDebug.Print fld.SizeDebug.Print fld.Files.CountDebug.Print fld.TypePara cada pliegue del campo.Debug.Print fold.NameSiguiente plieguePara cada archivo.Debug.Print fil.NameSiguiente filEnd Sub

Tenga en cuenta que debe presionar Ctrl + G para ver el resultado del comando Debug.Print en la ventana inmediata de VBA.

Método GetParentFolderName

Alternativamente a la forma mencionada anteriormente, puede acceder al nombre de la carpeta principal de una carpeta utilizando este código:

1234 Atenuar FSO como nuevo FileSystemObjectEstablecer FSO = CreateObject ("Scripting.FileSystemObject")ParentFold = FSO.GetParentFolderName ("C: \ ParentTest \ Test \")

ParentFold será en este caso "C: \ ParentTest \".

Tenga en cuenta que este método no resolverá la ruta ni comprobará la existencia de la ruta especificada.

Método GetSpecialFolder

Con el método GetSpecialFolder, al pasar 0, 1 o 2 como argumento, puede obtener la ruta de la carpeta de Windows (con los archivos instalados por el sistema operativo Windows), la ruta de la carpeta del sistema (con bibliotecas, fuentes y controladores de dispositivo) y la ruta temporal ruta de la carpeta (la carpeta que se utiliza para almacenar archivos temporales), respectivamente.

1234567 Sub FSOGetSpecialFolder ()Atenuar FSO como nuevo FileSystemObjectEstablecer FSO = CreateObject ("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder (0) 'El resultado puede ser: C: \ Windows \ System32End Sub

Método GetFile

Puede utilizar el método GetFile de forma muy similar al método GetFolder. Después de especificar el archivo al que desea acceder

1 Establecer fil = FSO.GetFile ("C: \ Src \ Test.xlsx")

puedes copiarlo:

1 fil. Copiar "C: \ Dst \"

Muévelo:

1 fil.Move "C: \ Dst \"

bórralo:

1 fil.Delete

o ábralo como un objeto TextStream:

1 fil.OpenAsTextStream

Las propiedades del archivo, como sus atributos, la fecha y hora en que se creó, se accedió por última vez o se modificó por última vez, la letra de su unidad, el nombre y el nombre corto, la ruta y la ruta corta, el tamaño, el tipo y su carpeta principal se pueden acceder de la misma manera. como se describe en el método GetFolder.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave