Archivos y directorios VBA – Objeto del sistema de archivos

Objeto del sistema de archivos

Se trata de una biblioteca adicional que ofrece un acceso claro y orientado a objetos a todas las funciones comunes de archivos y directorios.
Este objeto no forma parte de la biblioteca de Office y requiere que añada una referencia adicional a su proyecto.
SS – Diálogo de referencias
Una vez añadida la referencia puede utilizar el Navegador de Objetos para saber más sobre los objetos.
El Microsoft Scripting Runtime es una biblioteca que puede añadirse a un Proyecto utilizando (Herramientas > Referencias).
Esta biblioteca se encuentra en C:\Windows\System32\scrrun.dll

Dim objFSOFileSystemObject As Scripting.FileSystemObject 
Set objFSOFileSystemObject = CreateObject("Scripting.FileSystemObject")

Tipos de Objetos

FileSystemObject – También es un objeto de nivel superior utilizado para acceder a unidades, carpetas y archivos.
Drive – Pertenece a la colección Drives y se refiere a una unidad local o de red concreta.
Folder – Este objeto se refiere a una carpeta concreta.
File – Este objeto se refiere a un archivo concreto.
TextStream – Este objeto se refiere a un flujo de texto que se puede leer, escribir o añadir a un archivo de texto.
Dictionary – Este es el objeto de nivel superior

Objeto FileSystemObject

El objeto FileSystemObject es el objeto que realmente le da acceso a los archivos de un sistema utilizando 27 métodos y una sola propiedad.
Al crear carpetas debe crearlas, un nivel a la vez. No se puede crear una carpeta y una subcarpeta al mismo tiempo.
Siempre se deben utilizar los nombres de los servidores en lugar de las letras, ya que diferentes PC’s pueden tener asignadas diferentes letras
No trataremos de definir todos los métodos, pero revisaremos algunos a medida que los utilicemos en ejemplos de código un poco más adelante.
Además, FileSystemObject se utiliza para devolver un objeto que puede crear, leer y editar archivos de texto (ASCII y Unicode).
Una vez que se tiene una nueva instancia de FileSystemObject, se puede trabajar con unidades, carpetas y archivos, que proporcionan un fácil acceso al sistema de archivos y simplifican el proceso de lectura y escritura en un archivo de texto.

Dim objFSOFileSystemObject As New Scripting.FileSystemObject 

Alternativamente

Dim objFSOFileSystemObject As Scripting.Dictionary 
Set objFSOFileSystemObject = New Scripting.FileSystemObject

Alternativamente

Dim objFSOFileSystemObject As Object 
Set objFSOFileSystemObject = CreateObject("Scripting.FileSystemObject")

Importante

Desgraciadamente el FileSystemObject no es adecuado para trabajar con datos binarios. Para ello debes utilizar las funciones tradicionales.