VBA-filer och kataloger – filsystemobjekt

Filsystemobjekt

Det här är ett extra bibliotek som ger tydlig, objektorienterad åtkomst till alla de vanliga fil- och katalogfunktionerna.
Det här objektet ingår inte i Office-biblioteket och kräver att du lägger till en extra referens till ditt projekt.
SS – Dialogrutan Referenser
När referensen har lagts till kan du använda Objektsökaren för att ta reda på mer om objekten.
Microsoft Scripting Runtime är ett bibliotek som kan läggas till i ett projekt med hjälp av (Verktyg > Referenser).
Det här biblioteket finns i C:\Windows\System32\scrrun.dll

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

Typer av objekt

FileSystemObject – Detta är också ett objekt på högsta nivå som används för åtkomst till enheter, mappar och filer.
Drive – Detta tillhör samlingen Drives och hänvisar till en viss lokal enhet eller nätverksenhet.
Folder – Detta objekt hänvisar till en viss mapp.
File – Detta objekt hänvisar till en viss fil.
TextStream – Det här objektet hänvisar till en textström som kan läsas från, skrivas till eller läggas till en textfil.
Dictionary – Det här är det översta objektet

FileSystemObject Object

FileSystemObject-objektet är det objekt som faktiskt ger dig åtkomst till systemets filer med hjälp av 27 metoder och endast en egenskap.
När du skapar mappar måste du skapa dem, en nivå i taget. Du kan inte skapa en mapp och en undermapp samtidigt.
Du bör alltid använda servernamnen istället för bokstäverna eftersom olika datorer kan ha olika bokstäver tilldelade
Vi kommer inte att försöka definiera alla metoder, men vi kommer att gå igenom några när vi använder dem i kodexempel lite senare.
Det är dessutom så att FileSystemObject används för att returnera ett objekt som kan skapa, läsa och redigera textfiler (ASCII och Unicode).
När du har en ny instans av FileSystemObject kan du arbeta med enheter, mappar och filer, vilket ger enkel tillgång till filsystemet och förenklar läsning och skrivning av en textfil.

Dim objFSOFileSystemObject As New Scripting.FileSystemObject 

Alternativt

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

Alternativt

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

Viktigt

FileSystemObject är tyvärr inte lämpligt för arbete med binära data. För detta måste du använda de traditionella funktionerna.