Med
FileSystemObject kan du få adgang til serverens filsystem. Dette giver mulighed for at manipulere tekstfiler, foldere og drev fra ASP scripts.
Det vil f.eks. sige at du med at ASP script kan læse fra, eller skrive til, en tekstfil. Eller du kan få listet alle filer i en angivet folder - mulighederne er mange. Der er også gode muligheder for at bruge Filesystem objektet til at spare dig for en masse trivielt arbejde.
I denne lektion vil vi gennemgå hvordan du med Filesystem objektet kan arbejde med drev, foldere og filer. Målet er at give et hurtigt overblik over mulighederne. I de næste lektioner vil vi kigge nærmere på mere konkrete anvendelsesmuligheder.
Vi starter med at kigge på computerens drev. Ikke fordi det er det, du får mest brug for, men fordi det falder naturligt at behandle drev før foldere og filer.
I nedenstående eksempel vil vi gerne have listet alle drev på serveren. Dette gøres ved med filesystem objektet at skabe et array med drevene. Drev-bogstaverne udskrives herefter ved at løbe arrayet igennem.
<html> <head> <title>Filesystem objektet</title> </head> <body> <% ' Variabler Dim fso, d, dc ' Filesystem objektet Set fso = CreateObject("Scripting.FileSystemObject") ' Array med drev Set dc = fso.Drives ' Gennemløb array med en løkke og udskriv drevbogstav For Each d in dc Response.Write d.DriveLetter & "<br>" Next %> </body> </html>
Nu har vi fået listet alle drev på serveren. Det er endvidere muligt at hente yderligere oplysninger om hvert drev. Lad os f.eks. kigge nærmere på E-drevet, og undersøge hvilken type der er tale om. Dette har vi mulighed for med egenskaben
DriveType:
<html> <head> <title>Filesystem objektet</title> </head> <body> <% ' Variabler Dim fso, d, t ' Filesystem objektet Set fso = CreateObject("Scripting.FileSystemObject") ' Objektet Drive Set d = fso.GetDrive("E:") ' Find drevtypen og sæt betegnelse på Select Case d.DriveType Case 0: t = "Unknown" Case 1: t = "Removable" Case 2: t = "Fixed" Case 3: t = "Network" Case 4: t = "CD-ROM" Case 5: t = "RAM Disk" End Select Response.Write "Drevet " & d.DriveLetter & ": er af typen " & t %> </body> </html>
På nuværende tidspunkt vil vi ikke gøre mere i dybden med drev. Hvis du får behov for gennemgang af yderligere egenskaber, henvises til
Drive Objektet i VBScript dokumentationen.
Filesystem objektet giver også mulighed for at man i ASP scripts kan arbejde med foldere - eller mapper om man vil - på serveren. Men før vi går i gang med at kigge nærmere på egenskaberne for
Folder Objektet, skal vi lige så hvordan man nemt finder den fysiske placering af en folder eller en fil.
Problemstillingen er at dit website sikkert ligger på et webhotel hos en udbyder. Dermed har du ikke umiddelbar mulighed for at regne den fysiske placering af en folder eller en fil ud. Til dette formål kan du imidlertid benytte metoden
Server.Mappath.
For at finde den fysiske placering af denne folder kan vi f.eks. skrive
<% Response.Write Server.Mappath("/tutorials/asp/") %>
Hvilket returnerer:
d:\www2\html\tutorials\asp
Vi befinder os altså i mappen "www2" på d-drevet hos vores udbyder - ganske smart funktion, ikke?
Lad os straks bruge oplysningen til at kigge nærmere på folderen med Filesystem objektet og Folder objektet. Vi vil ikke gennemgå alle metoderne, kun nogle udvalgte. Igen henvises til dokumentationen for en komplet listning.
Lad os prøve at finde de tre egenskaber for den folder vi befinder os i nu - http://www.html.dk/tutorials/asp/
<html> <head> <title>Filesystem objektet</title> </head> <body> <% ' Variabler Dim fso, f, folderspec ' Find den fysiske placering af folderen folderspec = Server.Mappath("/tutorials/asp/") ' FileSystem objektet Set fso = CreateObject("Scripting.FileSystemObject") ' Folder objektet Set f = fso.GetFolder(folderspec) ' Find og skriv egenskaberne Response.Write "<h1>Folderen: " & folderspec & "</h1>" Response.Write "<p>Blev oprettet: " & f.DateCreated Response.Write "<p>Er sidst redigeret: " & f.DateLastModified Response.Write "<p>Og fylder " & f.Size & " bytes" %> </body> </html>
På samme måde som med foldere, kan man benytte FileSystem objektet, til at finde egenskaber for en fil.
På præcis samme måde som ovenfor kan vi finde de samme egesnakber for den fil du ser på nu: http://www.html.dk/tutorials/asp/lektion14.asp
<html> <head> <title>Filesystem objektet</title> </head> <body> <% ' Variabler Dim fso, f, filespec ' Find den fysiske placering af folderen filespec = Server.Mappath("/tutorials/asp/lektion14.asp") ' FileSystem objektet Set fso = CreateObject("Scripting.FileSystemObject") ' File objektet Set f = fso.GetFile(filespec) ' Find og skriv egenskaberne Response.Write "<h1>Filen: " & filespec & "</h1>" Response.Write "<p>Blev oprettet: " & f.DateCreated Response.Write "<p>Er sidst redigeret: " & f.DateLastModified Response.Write "<p>Og fylder " & f.Size & " bytes" %> </body> </html>
I de næste lektioner vil vi arbejde videre med Filesystem objektet, og blandt andet se på hvordan du læser fra og skriver til en tekstfil.