FileSystemObject - FSO

24. oktober 2008
Der er ofte behov for at få adgang til filer på serveren fx i forbindelse med manipulering af filer, mapper og drev - og her er FileSystemObject (FSO) værktøjet vi har behov. Med FSO har vi blandt andet mulighed for at oprette, rette, slette samt læse, slette og skrive til og fra filer og mapper. Jeg vil ikke komme ind på egentlige scenarier hvor FSO er det rigtige valg men derimod gå direkte til nogle eksempler.

Vis alle drev

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Sætter en objekt med samlingen af drev
Set DRIVES = FSO.Drives
'Looper drev igennem
For Each DRIVE In DRIVES
    'Udskriver drev-bogstavet
    Response.Write DRIVE.DriveLetter & "<br>"
Next
Set DRIVES = Nothing
Set
FSO = Nothing
%>

Vis oplysninger om et drev

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Definering af hvilket drev vi vil kigge på
Set DRIVE = FSO.GetDrive("c:")
'Vi omdøber lige drevtypen fra et tal til et forståeligt navn
Select Case DRIVE.DriveType
   
Case 0: DriveType = "Ukendt"
   
Case 1: DriveType = "Flytbart medie"
   
Case 2: DriveType = "Fastsiddende"
   
Case 3: DriveType = "Netværksdrev"
   
Case 4: DriveType = "CD-ROM"
   
Case 5: DriveType = "RAM-disk"
End Select
'Og så udskriver vi informationerne
Response.Write "Drev bogstav: " & DRIVE.DriveLetter & "<br />"
Response.Write "Drev type: " & DriveType & "<br />"
Response.Write "Ledig plads i KB på drev: " & FormatNumber(DRIVE.AvailableSpace / 1024, 0) & "<br />"
Response.Write "Plads i alt i KB på drev: " & FormatNumber(DRIVE.TotalSize / 1024, 0) & "<br />"
Response.Write "Drev serienummer: " & DRIVE.SerialNumber & "<br />"
Response.Write "Drev delingsnavn: " & DRIVE.ShareName & "<br />"
Set DRIVE = Nothing
Set
FSO = Nothing
%>

Opret en mappe

<%
'Oprettelse af selve FSO-objektet, der gør alt dette muligt
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Oprettelse af mappen
FSO.CreateFolder("c:\dinmappe")
'Og selvfølgelig husker vi at lukke vores FSO-objekt igen
Set FSO = Nothing
%>

Kopier en mappe

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Kopiering af mappe
FSO.CopyFolder "c:\dingamlemappe\", "c:\dinnyemappe\"
Set FSO = Nothing
%>

Flyt en mappe 

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Flytning af mappe
FSO.MoveFolder "c:\dingamlemappe\", "c:\dinnyemappe\"
Set FSO = Nothing
%>

Slet en mappe

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Sletning af mappen
FSO.DeleteFolder("c:\dinmappe")
Set FSO = Nothing
%>

Undersøg om mappe eksisterer

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Tjek om mappe findes
If FSO.FolderExists("c:\dinmappe\") Then
   
'udfør handling hvis mappen findes
   
Response.Write "Mappen findes"
Else
   
'udfør anden handling hvis mappen ikke findes
   
Response.Write "Mappen findes ikke"
End If
Set
FSO = Nothing
%>

Vis alle filer i en mappe

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Definering af hvilken mappe vi vil kigge i
Set FOLDER = FSO.GetFolder("c:\dinmappe\")
'udskriv filer i mappen
For Each FILE In FOLDER.Files
    Response.Write FILE.Name &
"<br />"
Next
'Igen husker vi at destruere alle de objekter være laver
Set FILE = Nothing
Set
FSO = Nothing
%>

Vis alle mapper i en mappe

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Definering af hvilken mappe vi vil kigge i
Set FOLDER = FSO.GetFolder("c:\dinmappe\")
'udskriv mapper i mappen
For Each SUBFOLDER In FOLDER.SubFolders
    Response.Write SubFolder.Name &
"<br>"
Next
Set FOLDER = Nothing
Set
FSO = Nothing
%>

Vis oplysninger om en mappe

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Definering af hvilken mappe vi vil kigge på
Set FOLDER = FSO.GetFolder("c:\dinmappe\")
'Udskriv mappens oplysninger
Response.Write
"Mappens navn: " & FOLDER.Name & "<br />"
Response.Write "Mappens type: " & FOLDER.Type & "<br />"
Response.Write "Mappens størrelse i bytes: " & FormatNumber(FOLDER.Size, 0) & "<br />"
Response.Write "Mappen er oprettet: " & FOLDER.DateCreated & "<br />"
Response.Write "Mappen er sidst redigeret: " & FOLDER.DateLastModified & "<br />"
Response.Write "Mappen er sidst tilgået: " & FOLDER.DateLastAccessed
Set FOLDER = Nothing
Set FSO = Nothing
%>

Opret en fil
Bemærk, at det selvfølgelig ikke behøver at være .txt-filer vi arbejder med - det kunne lige så godt være fx .xml eller .html.

<%
Set
FSO = Server.CreateObject("Scripting.FileSystemObject")
'Oprettelse af fil
FSO.CreateTextFile("c:\dinfil.txt")
Set FSO = Nothing
%>

Kopier en fil

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Kopiering af fil
FSO.CopyFile "c:\dingamlemappe\dinfil.txt", "c:\dinnyemappe\dinfil.txt"
Set FSO = Nothing
%>

Flyt en fil

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Flytning af fil
FSO.MoveFile "c:\dingamlemappe\dinfil.txt", "c:\dinnyemappe\dinfil.txt"
Set FSO = Nothing
%>

Slet en fil

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Sletning af fil
FSO.DeleteFile("c:\dinfil.txt")
Set FSO = Nothing
%>

Undersøg om fil eksisterer

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Tjek om fil findes
If FSO.FileExists("c:\dinmappe\dinfil.txt") Then
    'Udfør handling hvis filen findes
    Response.Write "Fil findes"
Else
   
'Udfør anden handling hvis filen ikke findes
   
Response.Write "Fil findes ikke"
End If
Set
FSO = Nothing
%>

Vis oplysninger om en fil

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Definering af hvilken fil vi vil kigge på
Set FILE = FSO.GetFile("c:\dinmappe\dinfil.txt")
Response.Write
"Filens navn: " & FILE.Name & "<br />"
Response.Write "Filens type: " & FILE.Type & "<br />"
Response.Write "Filens størrelse: " & FormatNumber(FILE.Size, 0) & " bytes<br />"
Response.Write "Filen er oprettet: " & FILE.DateCreated & "<br />"
Response.Write "Filen er sidst redigeret: " & FILE.DateLastModified & "<br />"
Response.Write "Filen er sidst tilg†et: " & FILE.DateLastAccessed
Set FILE = Nothing
Set FSO = Nothing
%>

Skriv enkelt linie til fil

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Definering af hvilken fil vi vil skrive til
Set FILE = FSO.OpenTextFile("c:\dinmappe\dinfil.txt", 2)
FILE.WriteLine(
"Din linie tekst")
FILE.Close
Set FILE = Nothing
Set FSO = Nothing
%>

Skriv flere linier til en fil

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Definering af hvilken fil vi vil skrive i
Set FILE = FSO.OpenTextFile("c:\dinmappe\dinfil.txt", 2)
FILE.Write(
"Din første linie" & VbCrLf & "Din anden linie")
FILE.Close
Set FILE = Nothing
Set FSO = Nothing
%>

Læs linie for linie fra en fil

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Definering af hvilken fil vi vil læse fra
Set FILE = FSO.OpenTextFile("c:\dinmappe\dinfil.txt", 1)
'Loop linierne igennem
Do While Not FILE.AtEndOfStream
'Udskriv hver enkelt linie
Response.Write FILE.Readline & "<br />"
Loop
FILE.Close
Set
FILE = Nothing
Set
FSO = Nothing
%>

Læs hele indholdet fra en fil

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
'Definering af hvilken fil vi vil skrive i
Set FILE = FSO.OpenTextFile("c:\dinmappe\dinfil.txt", 1)
'Udskriv alt indhold fra filen
Response.Write FILE.ReadAll
FILE.Close
Set FILE = Nothing
Set
FSO = Nothing
%>

Ovenstående eksempler er kun nogle relativt simple eksempler og de peger alle direkte på c: drevet hvilket (forhåbentlig) ikke er tilladt at skrive til eller læse fra på et webhotel - ligger du på et webhotel vil du kunne drage stor fordel af at benytte Server.MapPath i forbindelse med angivelse af mappe- og drev placeringer. Nærmer information omkring FSO kan findes på MSDN (http://msdn.microsoft.com/en-us/library/6kxy1a51(VS.85).aspx).

ASP , ,

Tilføj kommentar


(Viser dit Gravatar icon)

  Country flag

biuquote
  • Kommentar
  • Eksempel
Loading