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.