Innhald

# Tenesta ScriptForge.FileSystem

Tenesta FileSystem inneheld rutinar for handsaming av filer og mapper. Her kjem nokre eksempel på funksjonane som vert leverte av denne tenesta:

- Verifiserer om ei fil eller ei mappa finst.

- Laga og sletta filer og mapper.

- Starta dialogvindauge for å opna og gøyma filer.

- Få tilgang til lista over filer i ei mappe osv.

Metodane i tenesta FileSystem er for det meste basert på XSimpleFileAccess UNO interface.

## Definisjonar

Tabellen nedanfor viser hovudparameterane som vert brukte av dei fleste metodane i FileSystem-tenestene.

Parameter | Beskriving
--- | ---
FileName | Det fullstendige namnet på filen, medrekna stien utan eit stiskiljeteikn til slutt.
FolderName | Det fullstendige namnet på mappa, medrekna stien. Det kan innehalda eller ikkje innehalda det avsluttande stiskilleteiknet.
Name | Den siste komponenten i mappenamnet eller filnamnet med utvidinga. Denne parameteren vert alltid sett med formatet brukt i operativsystemet.
BaseName | Den siste komponenten i mappenamnet eller filnamnet utan utvidinga.
NamePattern | Nokre av namna ovanfor inneheld jokerteikn i den siste komponenten. Tillatne jokerteikn er: "?" står for eitt enkelt teikn "*" står for ingen, eitt eller fleire teikn

Tenesta FileSystem gjer det mogleg å utføra operasjonar på fleire filer samtidig. Ved hjelp av namnemønster kan brukarskript kopiera, flytta eller slette fleire filer. På den andre sida, kan grunnleggjande innebygde metodar berre handsama enkeltfiler.

### Notasjon for filnamn

Notasjonen som vert brukt for å uttrykkja fil- og mappe-namn, både i argumenta og returverdiane, er definerte av eigenskapen FileNaming i tenesta FileSystem.

Kort sagt, dei moglege representasjonstypane er «URL» (URL-filnotasjon), «SYS» (operativsystemnotasjon) og «ANY» (standard). Sjå meir informasjon i nedanfor.

Eit eksempel på URL-notasjonen er file:///C:/Documents/my_file.odt. Når det er mogleg, bør du vurdera å bruka URL-notasjonen fordi det er eit meir berbart alternativ.

Bruk av snarvegen «~» (tilde), som er vanleg i Linux-baserte operativsystem, for å uttrykkja ein bane til ei mappe og filnamn, vert ikkje støtta. I staden for å bruka "~/Dokument/mi_fil.odt" brukar du heile stien: "/home/user/Dokument/mi_fil.odt".

## Oppkall av tenester

Den neste kodesnutten kallar opp tenesta FileSystem. Metoden BuildPath er brukt som eksempel.

##### I Basic

          GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
          Dim FSO As Object
          Set FSO = CreateScriptService("FileSystem")
          FSO.BuildPath(...)

##### I Python

          from scriptforge import CreateScriptService
          fs = CreateScriptService("FileSystem")
          fs.BuildPath(...)

## Få tilgang til det virtuelle filsystemet til eit dokument

Dokumentfilene i LibreOffice er komprimerte ZIP-filer som inneheld filene og mappene som representerer det faktiske dokumentinnhaldet. Medan dokumentet er ope, er det mogleg å få tilgang til dette virtuelle filsystemet, utforska strukturen og dessutan lesa og oppretta filer og mapper.

Eksempelet nedanfor viser korleis du opprettar ei tekstfil kalla myFile.txt og lagrar ho i det virtuelle filsystemet til dokumentet.

##### I Basic

        GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
        Dim oDoc As Object, fso As Object, oFile As Object
        Dim sRoot, sFile, sMyDir
        Set fso = CreateScriptService("FileSystem")
        Set oDoc = CreateScriptService("Document", ThisComponent)
        ' Hentar URL-stinotasjonen til rota av det virtuelle filsystemet
        sRoot = oDoc.FileSystem()
        sMyDir = sRoot & "myDir"
        ' Lagar mappa «myDir» viss ho ikkje finst frå før
        If Not fso.FolderExists(sMyDir) Then
            fso.CreateFolder(sMyDir)
        End If
        ' Lagar fila og skriv noko tekst i ho
        sFile = fso.BuildPath(sMyDir, "myFile.txt")
        oFile = fso.CreateTextFile(sFile)
        oFile.WriteLine("Hello!")
        oFile.CloseFile()

##### I Python

        from scriptforge import CreateScriptService
        bas = CreateScriptService("Basic")
        doc = CreateScriptService("Document", bas.ThisComponent)
        fso = CreateScriptService("FileSystem")
        sRoot = doc.FileSystem
        sMyDir = sRoot + "myDir"
        if not fso.FolderExists(sMyDir):
            fso.CreateFolder(sMyDir)
        sFile = fso.BuildPath(sMyDir, "myFile.txt")
        oFile = fso.CreateTextFile(sFile)
        oFile.WriteLine("Hello!")
        oFile.CloseFile()

Generelt kan alle metodane til tenesta FileSystem verta brukte til å manipulera filer i det virtuelle filsystemet til dokumentet. Følgjande avgrensingar gjeld likevel:

- Det er ikkje mogleg å laga filer i rotmappa. Bruk undermapper som finst frå før, eller lag nye mapper for å lagra filer i filsystemet for dokumentet.

- Notasjonen FileNaming vert alltid sett på å vera «URL».

- Metodane CompareFiles, GetFileModified, HashFile, PickFile og PickFolder er ikkje gyldige.

- Metoden GetFileLen returnerer alltid null.

- Metoden Normalize returnerer alltid inndatastrengen uendra.

Stien til det virtuelle filsystemet er ikkje ei fysisk adresse på harddisken til datamaskinen. Han kan berre nåast frå eit % PRODUCTNAME-skript og finst berre medan dokumentfila er ope.

## Eigenskapar

Namn | Skriveverna | Type | Beskriving
--- | --- | --- | ---
FileNaming | Nei | String | Set eller returnerer gjeldande fil- og mappenotasjon, anten «ANY», «URL» eller «SYS»: "ANY": (standard) metodane i tenesta FileSystem godtar både URL-adressa og gjeldande operativsystemnotasjon for inndataargument, men returnerer alltid URL-strengar. "URL": metodane i tenesta FileSystem ventar URL-notasjon i inndata-argument og returnerer URL-strengar. "SYS": metodane i tenesta FileSystem ventar operativsystemet sin notasjon brukt både i inndata-argument og returnerstrengane. Når eigenskapen FileNaming er sett, vert han uendra anten til slutten av LibreOffice-økta eller til han vert sett på nytt.
ConfigFolder | Ja | String | Returnerer oppsettmappa for LibreOffice.
ExtensionsFolder | Ja | String | Returnerer mappa som utvidingane er installerte i.
HomeFolder | Ja | String | Returnerer brukaren si heimemappe.
InstallFolder | Ja | String | Returnerer installasjonsmappa for LibreOffice.
TemplatesFolder | Ja | String | Returnerer mappa som inneheld systemet sine malfiler.
TemporaryFolder | Ja | String | Returnerer mappa til dei mellombels filene som er definerte i LibreOffice sti-innstillingar.
UserTemplatesFolder | Ja | String | Returnerer mappa som inneheld dei brukardefinerte malfilene.

Liste over metodar i tenesta FileSystem
BuildPath CompareFiles CopyFile CopyFolder CreateFolder CreateTextFile DeleteFile DeleteFolder ExtensionFolder | FileExists Files FolderExists GetBaseName GetExtension GetFileLen GetFileModified GetName GetParentFolderName | GetTempName HashFile MoveFile MoveFolder Normalize OpenTextFile PickFile PickFolder SubFolders

## BuildPath

Slår saman ein mappesti og namnet på ei fil og returnerer det fullstendige filnamnet med eit gyldig stikiljeteikn. Stiskiljeteiknet vert lagt til berre om det er nødvendig.

### Syntaks:

svc.BuildPath(foldername: str, name: str): str

### Parametrar:

foldername: Stien som name skal kombinerast med. Den gjevne stien treng ikkje vera til ei mappe som finst frå før.

name: Namnet på fila som skal føyast til foldername. Denne parameteren brukar notasjonen til det gjeldande operativsystemet.

### Eksempel:

##### I Basic

          Dim FSO as Object
          Set FSO = CreateScriptService("FileSystem")
          Dim aFileName as String
          FSO.FileNaming = "URL"
          aFileName = FSO.BuildPath("file:///home/user", "sample file.odt")
          ' file:///home/user/sample%20file.odt

##### I Python

          fs = CreateScriptService("FileSystem")
          fs.FileNaming = "URL"
          aFileName = fs.BuildPath("file:///home/user", "sample file.odt")
          # file:///home/user/sample%20file.odt

## CompareFiles

Samanliknar to filer og returnerer Sann når dei ser ut til å vera like.

Avhengig av verdien til argumentet comparecontents, kan samanlikninga mellom begge filene anten berre vera basert på filattributt (for eksempel den sist endra datoen), eller basert på filinnhaldet.

### Syntaks:

svc.CompareFiles(filename1: str, filename2: str, comparecontents: bool = False): bool

### Parametrar:

filename1, filename2: Filene som skal samanliknast.

comparecontents: Når Sann, vert innhaldet av filene samanlikna (standard = Usann).

### Eksempel:

##### I Basic

          FSO.FileNaming = "SYS"
          If FSO.CompareFiles("C:\myFile1.txt", "C:\myFile2.txt", CompareContents := False) Then
              ' ...
          End If

##### I Python

          fs.FileNaming = "SYS"
          if fs.CompareFiles(r"C:\myFile1.txt", r"C:\myFile2.txt", comparecontents = False):
              # ...

## CopyFile

Kopierer éi eller fleire filer frå éin stad til ein annan. Returnerer Sann viss minst éi fil er kopiert, eller Usann viss det skjedde ein feil.

Det oppstår ein feil viss parameteren source brukar jokerteikn og det ikkje er samsvar med noko fil.

Metoden stoppar straks når det oppstår ein feil. Metoden rullar ikkje tilbake, og angrar heller ikkje endringar som vart gjort før feilen oppstod.

### Syntaks:

svc.CopyFile(source: str, destination: str, overwrite: bool = True): bool

### Parametrar:

source: Det kan vera eit FileName eller eit NamePattern som peikar på éi eller fleire filer som skal kopierast.

destination: Kan vera anten eit FileName som spesifiserer kvar den enkle source-fila skal kopierast til, eller eit FolderName som fleire filer frå source skal kopierast til.

- Viss destination ikkje finst, vert det laga.

- Det er ikkje tillate å bruka jokerteikn i destination.

overwrite: Viss Sann (standard), kan filene overskrivast. Metoden vil ikkje lukkast viss destination er skriveverna, same kva verdi som er sett i overwrite.

### Eksempel:

I eksempla nedanfor kopierer den første linja ei enkelt fil, medan den anden linja kopierer fleire filer med jokerteikn.

##### I Basic

          FSO.CopyFile("C:\Documents\my_file.odt", "C:\Temp\copied_file.odt")
          FSO.CopyFile("C:\Documents\*.*", "C:\Temp\", Overwrite := False)

##### I Python

          fs.CopyFile(r"C:\Documents\my_file.odt", r"C:\Temp\copied_file.odt")
          fs.CopyFile(r"C:\Documents\*.*", r"C:\Temp", overwrite = False)

Ver merksam på at undermapper og innhaldet i dei ikkje vert kopiert når det er brukt jokerteikn i argumentet source.

## CopyFolder

Kopierer éi eller fleire mapper frå éin stad til ein annan. Returnerer Sann viss minst éi mappe er kopiert, eller Usann viss det skjedde ein feil.

Det oppstår ein feil viss parameteren source brukar jokerteikn og det ikkje er samsvar med noko mappe.

Metoden stoppar straks når det oppstår ein feil. Metoden rullar ikkje tilbake, og angrar heller ikkje endringar som vart gjort før feilen oppstod.

### Syntaks:

svc.CopyFolder(source: str, destination: str, overwrite: bool = True): bool

### Parametrar:

source: Kan vera eit FolderName eller NamePattern som peikar på éi eller fleire mapper som skal kopierast.

destination: Spesifiserer det FolderName som éi eller fleire mapper, definert i source, skal kopierast til.

- Viss destination ikkje finst, vert det laga.

- Det er ikkje tillate å bruka jokerteikn i destination.

overwrite: Viss Sann (standard), kan filene overskrivast. Metoden vil ikkje lukkast viss destination er skriveverna, same kva verdi som er sett i overwrite.

### Eksempel:

I eksempla nedanfor vert alle filer, mapper og undermapper kopierte.

          ' Basic
          FSO.CopyFolder("C:\Documents\*", "C:\Temp\", Overwrite := False)

          # Python
          fs.CopyFolder(r"C:\Documents\*", r"C:\Temp", overwrite = False)

## CreateFolder

Lagar det spesifiserte FolderName. Returnerer Sann viss det kan lukkast å laga mappa.

Viss den spesifiserte mappa har ei overordna mappe som ikkje finst, vert denne laga.

### Syntaks:

svc.CreateFolder(foldername: str): bool

### Parametrar:

foldername: Ein streng som representerer mappa som skal lagast. Viss mappa finst frå før, vert det sett opp eit unntak.

### Eksempel:

          ' Basic
          FSO.CreateFolder("C:\NewFolder")

          # Python
          fs.CreateFolder(r"C:\NewFolder")

## CreateTextFile

Lagar ei spesifisert fil og returnerer tenesta TextStream som kan brukast for å skriva til fila.

Metoden returnerer objektet Null viss det går feil.

### Syntaks:

svc.CreateTextFile(filename: str, overwrite: bool = True, encoding: str = 'UTF-8'): svc

### Parametrar:

filename: Namnet på fila som skal lagast.

overwrite: Boolsk verdi som bestemmer om filename kan overskrivast (standard = Sann).

encoding: Teiknsettet som skal brukast. Standard = «UTF-8».

### Eksempel:

##### I Basic

          Dim myFile As Object
          FSO.FileNaming = "SYS"
          Set myFile = FSO.CreateTextFile("C:\Temp\ThisFile.txt", Overwrite := True)

##### I Python

          fs.FileNaming = "SYS"
          myFile = fs.CreateTextFile(r"C:\Temp\ThisFile.txt", overwrite = True)

Du kan sjå meir om namna på teiknsett på IANAs Character Se side. Ver merksam på at LibreOffice ikkje implementerer alle teiknsetta som finst.

## DeleteFile

Slettar éi eller fleire filer. Returnerer Sann viss minst éi fil er sletta, eller Usann viss det skjedde ein feil.

Det oppstår også ein feil viss parameteren filename brukar jokerteikn og det ikkje er samsvar med filene.

Fila som skal slettast må ikkje vera skriveverna.

Metoden stoppar straks når det oppstår ein feil. Metoden rullar ikkje tilbake, og angrar heller ikkje endringar som vart gjort før feilen oppstod.

### Syntaks:

svc.DeleteFile(filename: str): bool

### Parametrar:

filename: Det kan vera eit FileName eller eit NamePattern som indikerer éi eller fleire filer som skal slettast.

### Eksempel:

I eksempla nedanfor vert berre filer sletta. Undermapper vert ikkje sletta.

          ' Basic
          FSO.DeleteFile("C:\Temp\*.docx")

          # Python
          fs.DeleteFile(r"C:\Temp\*.docx")

## DeleteFolder

Slettar éi eller fleire mapper. Returnerer Sann viss minst éi mappe er sletta, eller Usann viss det skjedde ein feil.

Det oppstår også ein feil viss parameteren foldername brukar jokerteikn og det ikkje er samsvar med filene.

Mappa som skal slettast må ikkje vera skriveverna.

Metoden stoppar straks når det oppstår ein feil. Metoden rullar ikkje tilbake, og angrar heller ikkje endringar som vart gjort før feilen oppstod.

### Syntaks:

svc.DeleteFolder(foldername: str): bool

### Parametrar:

foldername: Det kan vera eit FolderName eller NamePattern som indikerer éi eller fleire mapper som skal slettast.

### Eksempel:

I eksempla nedanfor vert berre mapper og innhaldet i dei sletta. Filer i i den overordna mappa «C:\Temp» vert ikkje sletta.

          ' Basic
          FSO.DeleteFolder("C:\Temp\*")

          # Python
          fs.DeleteFolder(r"C:\Temp\*")

## ExtensionFolder

Returnerer ein streng som inneheld mappa der den gjevne utvidingspakken er installert.

Den gjeldande verdien til eigenskapen SF_FileSystem.FileName vert brukt til å bestemma notasjonen brukt i den returnerte strengen.

Bruk eigenskapen Utvidingar frå plattforma teneste for å få strengmatrise med ID-ane til alle installerte utvidingar.

### Syntaks:

svc.ExtensionFolder(extension: str): str

### Parametrar:

utviding: Ein strengverdi med ID-en til utvidinga. Viss utvidinga ikkje er installert, vert det sett opp eit unntak.

### Eksempel:

Eksempla nedføre i Basic og Python returnerer mappa som APSO-utvidinga er installert i.

          ' Basic
          sFolder = FSO.ExtensionFolder("apso.python.script.organizer")
          ' file:///home/username/.config/libreoffice/4/user/uno_packages/cache/uno_packages/lu10833wz3u2i.tmp_/apso_1_2_7.oxt

          # Python
          sFolder = fs.ExtensionFolder("apso.python.script.organizer")

## FileExists

Returnerer Sann viss eit gjeve filnamn er gyldig og fila finst, elles returnerer metoden Usann.

Viss parameteren filename er eit mappenamn som finst frå før, returnerer metoden Usann.

### Syntaks:

svc.FileExists(filename: str): bool

### Parametrar:

filename: Ein streng som representerer fila som skal testast.

### Eksempel:

##### I Basic

          FSO.FileNaming = "SYS"
          If FSO.FileExists("C:\Documents\my_file.odt") Then
              '...
          End If

##### I Python

          fs.FileNaming = "SYS"
          if fs.FileExists(r"C:\Documents\my_file.odt"):
              # ...

## Files

Returnerer ei nullbasert matrise (BASIC) eller tuppel (Python) av filer lagra i ei bestemt mappe. Kvar oppføring i matrisa eller tuppelen er ein streng med full sti og filnamn.

Viss argumentet foldername spesifiserer ei mappe som ikkje finst, vert det sett eit unntak.

Den resulterande lista kan filtrerast med jokerteikn.

### Syntaks:

svc.Files(foldername: str, filter: str = '', includesubfolders: bool = False): str[0..*]

### Parametrar:

foldername: Ein streng som representerer ei mappe. Mappa må finnast. Dette argument må ikkje visa til ei fil.

filter: Ein streng som inneheld jokerteikn («?» og «*») som vert brukt i den resulterande lista over filer (standard = "").

includesubfolders: Set dette argumentet til Sann for å ta med innhaldet i undermappene (standard = Usann).

### Eksempel:

##### I Basic

          Dim filesList As Variant, file As String
          FSO.FileNaming = "SYS"
          ' Returnerer alle filene som passar «*.txt»-filteret, også filene u undermappene
          filesList = FSO.Files("/home/user/", "*.txt", IncludeSubfolders := True)
          For Each file In filesList
              ' ...
          Next file

##### I Python

          fs.FileNaming = "SYS"
          filesList = fs.Files("/home/user/", "*.txt", includesubfolders = True)
          for file in fileList:
              # ...

## FolderExists

Returnerer Sann viss det spesifiserte foldername er gyldig og fila finst, elles returnerer metoden Usann.

Viss parameteren foldername faktisk er eit filnamn, returnerer metoden Usann.

### Syntaks:

svc.FolderExists(foldername: str): bool

### Parametrar:

foldername: Ein streng som representerer mappa som skal testast.

### Eksempel:

##### I Basic

          FSO.FileNaming = "SYS"
          If FSO.FolderExists("C:\Documents\Thesis") Then
              '...
          End If

##### I Python

          fs.FileNaming = "SYS"
          if fs.FolderExists(r"C:\Documents\Thesis")
              # ...

## GetBaseName

Returnerer filnamnet eller mappenamnet BaseName (same som den siste komponenten) utan filutvidinga.

Metoden kontrollerer ikkje om den spesifiserte fila eller mappa finst frå før.

### Syntaks:

svc.GetBaseName(filename: str): str

### Parametrar:

filename: Ein streng som representerer filnamnet med stien.

### Eksempel:

I eksempla nedanfor kallar den første metoden GetBaseName opp ei mappe, slik at funksjonen returnerer den siste komponenten i stien. Det andre oppkallet mottek eit filnamn som inndata, slik at namnet på fila vert returnert utan filetternamnet.

##### I Basic

          MsgBox FSO.GetBaseName("/home/user/Documents") ' "Documents"
          MsgBox FSO.GetBaseName("/home/user/Documents/my_file.ods") ' "my_file"

##### I Python

          bas = CreateScriptService("Basic")
          bas.MsgBox(fs.GetBaseName("/home/user/Documents")) # "Documents"
          bas.MsgBox(fs.GetBaseName("/home/user/Documents/my_file.ods")) # "my_file"

## GetExtension

Returnerer filtypen for ei fil eller ei mappe utan teiknet punktum «.».

Metoden kontrollerer ikkje om den spesifiserte fila eller mappa finst frå før.

Viss denne metoden vert brukt på eit mappenamn eller ei fil utan filetternam, vert det returnert ein tom streng.

### Syntaks:

svc.GetExtension(filename: str): str

### Parametrar:

filename: Ein streng som representerer filnamnet med stien.

### Eksempel:

          ' Basic
          ext = FSO.GetExtension("C:\Windows\Notepad.exe")  ' "exe"

          # Python
          ext = fs.GetExtension(r"C:\Windows\Notepad.exe")  # "exe"

## GetFileLen

Den innebygde Basic-funksjonen FileLen returnerer talet på byte i ei fil som ein Long-verdi, det vil seia opp til 2GB.

Metoden GetFileLen kan handsama mykje større filer ved å returnera verdien Currency.

### Syntaks:

svc.GetFileLen(filename: str): num

### Parametrar:

filename: Ein streng som representerer ei fil som finst frå før.

### Eksempel:

##### I Basic

          Dim fLen As Currency
          FSO.FileNaming = "SYS"
          fLen = FSO.GetFileLen("C:\pagefile.sys")

##### I Python

          fs.FileNaming = "SYS"
          fLen = fs.GetFileLen(r"C:\pagefile.sys")

## GetFileModified

Returnerer datoen ei gjeve fil sist vart endra.

### Syntaks:

svc.GetFileModified(filename: str): datetime

### Parametrar:

filename: Ein streng som representerer ei fil som finst frå før.

### Eksempel:

##### I Basic

          Dim aDate As Date
          FSO.FileNaming = "SYS"
          aDate = FSO.GetFileModified("C:\Documents\my_file.odt")

##### I Python

          fs.FileNaming = "SYS"
          aDate = FSO.GetFileModified(r"C:\Documents\my_file.odt")

## GetName

Returnerer den siste komponenten i eit fil- eller mappenamn i formatet brukt av operativsystemet.

Metoden kontrollerer ikkje om den spesifiserte fila eller mappa finst frå før.

### Syntaks:

svc.GetName(filename: str): str

### Parametrar:

filename: Ein streng som representerer filnamnet med stien.

### Eksempel:

          ' Basic
          a = FSO.GetName("C:\Windows\Notepad.exe")  ' Notepad.exe

          # Python
          a = fs.GetName(r"C:\Windows\Notepad.exe")  # Notepad.exe

## GetParentFolderName

Returnerer ein streng som inneheld namnet på den overordna mappa for den gjevne fila eller mappa.

Metoden kontrollerer ikkje om den spesifiserte fila eller mappa finst frå før.

### Syntaks:

svc.GetParentFolderName(filename: str): str

### Parametrar:

filname: Ein streng med det fil- eller mappenamnet som skal analyserast.

### Eksempel:

          ' Basic
          a = FSO.GetParentFolderName("C:\Windows\Notepad.exe")  ' C:\Windows\

          # Python
          a = fs.GetParentFolderName(r"C:\Windows\Notepad.exe")  # C:\Windows\

## GetTempName

Returnerer eit tilfeldig generert mellombels filnamn som kan vera nyttig for å utføra operasjonar som krev ei mellombels fil

Som standard har ikkje det returnerte filnamnet ein filtype. Bruk parameteren extension for å spesifisera utvidinga av filnamnet som skal genererast.

Mappedelen av den returnerte strengen er den mellombelse mappa til systemet.

Metoden lagar ikkje den mellombels fila.

### Syntaks:

svc.GetTempName(extension: str): str

### Parametrar:

extension: Utvidinga av det mellombelse filnamnet (Standard = "").

### Eksempel:

##### I Basic

          Dim fName As String
          FSO.FileNaming = "SYS"
          fName = FSO.GetTempName(Extension := "txt")
          ' "/tmp/SF_574068.txt"

##### I Python

          fs.FileNaming = "SYS"
          fName = FSO.GetTempName(extension = "txt")
          # "/tmp/SF_574068.txt"

## HashFile

Hash-funksjonar vert brukte av nokre kryptografiske algoritmar, i digitale signaturar, meldings-godkjenningskodar, svindeloppdaging, fingeravtrykk, kontrollsummar (kontroll av meldingsintegritet), hash-tabellar, lagring av passord og meir.

Metoden HashFile returnerer resultatet av ein hash-funksjon som er brukt på ei gjeven fil og med ein gjeven algoritme. Den returnerte verdien er ein streng av heksadesimale siffer skrive med små bokstavar.

Dei støtta hash-algoritmene er: MD5, SHA1, SHA224, SHA256, SHA384 og SHA512.

### Syntaks:

svc.HashFile(filename: str, algorithm: str): str

### Parametrar:

filename: Ein streng som representerer ei fil som finst frå før.

algoritme: Ein av dei støtta algoritmane.

### Eksempel:

          ' Basic
          sHash = FSO.HashFile("C:\pagefile.sys", "MD5")

          # Python
          sHash = FSO.HashFile(r"C:\pagefile.sys", "MD5")

## MoveFile

Flyttar éi eller fleire filer frå éin stad til ein annan. Returnerer Sann viss minst éi fil er flytt, eller Usann viss det oppstod ein feil.

Det oppstår ein feil viss parameteren source brukar jokerteikn og det ikkje er samsvar med noko fil.

Metoden stoppar straks når det oppstår ein feil. Metoden rullar ikkje tilbake, og angrar heller ikkje endringar som vart gjort før feilen oppstod.

### Syntaks:

svc.MoveFile(source: str, destination: str): bool

### Parametrar:

source: Kan vera eit FileName eller eit NamePattern som peikar på éi eller fleire mapper som skal flyttast.

destination: Viss source er eit FileName så peikar denne parameteren på den nye stien og filnamnet til den fila som er flytt.

Viss flytteoperasjonen gjeld fleire filer, må destination vera eit mappenamn. Viss mappa ikkje finst, vert ho laga.

Viss source og destination har den same overordna mappa, vil metoden gje nytt namn til source.

Det er ikkje tillate å bruka jokerteikn i destination.

### Eksempel:

I eksempla nedanfor vert berre filene flytta, ikkje undermappene.

          ' Basic
          FSO.MoveFile("C:\Temp1\*.*", "C:\Temp2")

          # Python
          fs.MoveFile(r"C:\Temp1\*.*", r"C:\Temp2")

## MoveFolder

Flyttar éi eller fleire mapper frå éin stad til ein annan. Returnerer Sann viss minst éi mappe er flytt, eller Usann viss det skjedde ein feil.

Det oppstår ein feil viss parameteren source brukar jokerteikn og det ikkje er samsvar med noko mappe.

Metoden stoppar straks når han møter ein feil. Metoden rullar ikkje tilbake, og angrar heller ikkje endringar som vart gjort før feilen oppstod.

### Syntaks:

svc.MoveFolder(source: str, destination: str): bool

### Parametrar:

source: Kan vera eit FolderName eller NamePattern som spesifiserer éi eller fleire mapper som skal flyttast.

destination: Viss flyttinga involverer éi enkelt mappe, er destination namnet og stien til den flytte mappa, som ikkje må finnast frå før.

Viss fleire mapper vert flytte, bestemmer destination kvar mappene i source skal flyttast til. Viss destination ikkje finst frå før, vert det laga.

Det er ikkje tillate å bruka jokerteikn i destination.

### Eksempel:

          ' Basic
          FSO.MoveFolder("C:\Temp1\*", "C:\Temp2")

          # Python
          fs.MoveFolder(r"C:\Temp1\*", r"C:\Temp2")

## Normalize

Returnerer ein streng som inneheld det normaliserte banenamnet ved å gøyma overflødige skiljeteikn og referansar på høgare nivå.

For eksempel vert stinamna A//B, A/B/, A/./B og A/foo/ ../B normaliserte til A/B.

I Windows vert skråstrekar «/» konverterte til bakoverstrekar «\».

Den gjeldande verdien av eigenskapen SF_FileSystem.FileName vert brukt til å bestemma notasjonen til filnamn-argumentet og formatet til den returnerte strengen.

### Syntaks:

svc.Normalize(filename: str): str

### Parametrar:

filnamn: ein streng som representerer eit gyldig banenamn. Det er ikkje sikkert at fila eller katalogen representert av dette argumentet finst.

### Eksempel:

##### I Basic

        FSO.FileNaming = "URL"
        ' file:///home/user/Documents
        normPath = FSO.Normalize("file:///home/user/Documents/")
        ' file:///home/user/Documents
        normPath = FSO.Normalize("file:///home//user//Documents/")
        ' file:///home/user
        normPath = FSO.Normalize("file:///home//user//Documents/../")

##### I Python

        fs.FileNaming = "URL"
        normPath = fs.Normalize("file:///home/user/Documents/")
        normPath = fs.Normalize("file:///home//user//Documents/")
        normPath = fs.Normalize("file:///home//user//Documents/../")

## OpenTextFile

Opnar ei fil og returnerer objektet TextStream som kan brukast til å lesa frå, skriva til eller leggja til fila.

Merk at metoden ikkje kontrollerer pm den gjevne fila faktisk er ei tekstfil.

Denne metoden returnerer eit Null-objekt (i Basic) eller None (i Python) viss det kjem opp ein feil.

### Syntaks:

svc.OpenTextFile(filename: str, iomode: int = 1, create: bool = False, encoding: str = 'UTF-8'): svc

### Parametrar:

filename: Identifiserer fila som skal opnast.

iomode: Indikerer input/output modus. Det kan vera éin av dei tre konstantane: svc.ForReading (standard), svc.ForWriting eller svc.ForAppending.

create: Boolsk verdi som indikerer om ei ny fil kan lagast viss det gjevne filename ikkje finst frå før:

- Viss Sann vert ei fil og den overordna mappa for fila oppretta viss dei ikkje finst frå før.

- Viss Usann vert den nye fila ikkje oppretta (standard).

encoding: Teiknsettet som skal brukast. Standard = «UTF-8».

### Eksempel:

##### I Basic

          Dim myFile As Object
          FSO.FileNaming = "SYS"
          Set myFile = FSO.OpenTextFile("C:\Temp\ThisFile.txt", FSO.ForReading)
          If Not IsNull(myFile) Then
              ' ...
          End If

##### I Python

          fs.FileNaming = "SYS"
          myFile = fs.OpenTextFile(r"C:\Temp\ThisFile.txt", fs.ForReading)
          if myFile is not None:
              # ...

## PickFile

Opnar eit dialogvindauge for å lagra og opna filer.

Viss SAVE-modus er sett og den valde fila finst frå før, vert det vist ei åtvaring.

### Syntaks:

svc.PickFile(defaultfile: str ='', mode: str = 'OPEN', filter: str = ''): str

### Parametrar:

defaultfile: Dette argumentet er ein streng som er sett saman av eit mappe- og eit filnamn:

- Mappedelen peikar på den mappa som vert vist når dialogvindauget vert opna (standard = den sist opna mappa).

- Fildelen peikar på den standardfila som skal opnast eller lagrast.

mode: Ein strengverdi som kan vera anten "OPEN" (for inndata-filer) eller "SAVE" (for utdata-filer). Standardverdien er "OPEN".

filter: Namneutvidinga på dei filene som vert viste når dialogvindauget er ope (standard=ikkje filter).

### Eksempel:

Eksempla nedanfor opnar ein filveljar med "txt"-filteret slått på.

          ' Basic
          aFile = FSO.PickFile("C:\Documents", "OPEN", "txt")

          # Python
          aFile = fs.PickFile(r"C:\Documents", "OPEN", "txt")

## PickFolder

Opnar eit dialogfelt for å velja ei mappe.

### Syntaks:

svc.PickFolder(defaultfolder: str = '', freetext: str = ''): str

### Parametrar:

defaultfolder: Ein streng som inneheld det mappenamnet som vert vist når dialogvindauget vert opna (standard = sen sist valde mappa).

freetext: Teksten som skal visast i dialogvindauget (standard = "").

### Eksempel:

          ' Basic
          aFolder = FSO.PickFolder("C:\Documents", "Vel ei mappe eller trykk på Avbryt")

          # Python
          aFolder = fs.PickFolder(r"C:\Documents", "Vel ei mappe eller trykk på «Avbryt»")

## SubFolders

Returnerer ei null-basert matrise av strengar som svarar til dei mappene som er lagra i eit gjeve foldername.

Lista kan vera filtrert med jokerteikn.

### Syntaks:

svc.SubFolders(foldername: str, filter: str = '', includesubfolders: bool = False): str[0..*]

### Parametrar:

foldername: Ein streng som representerer ei mappe. Mappa må finnast. foldername må ikkje visa til ei fil.

filter: Ein streng som inneheld jokerteikn («?» og «*») som vert brukt i den resulterande lista over mapper (standard = "").

includesubfolders: Set dette argumentet til Sann for å ta med innhaldet i undermappene (standard = Usann).

### Eksempel:

##### I Basic

          Dim folderList As Variant, folder As String
          FSO.FileNaming = "SYS"
          folderList = FSO.SubFolders("/home/user/")
          For Each folder In folderList
              ' ...
          Next folder

##### I Python

          fs.FileNaming = "SYS"
          folderList = fs.SubFolders("/home/user/")
          for folder in folderList:
              # ...

Alle ScriptForge Basic-rutinane og -identifikatorane som vert innleidde med understrek «_» er reserverte for internt bruk. Dei er ikkje meint brukte i Basic-makroar.

Liknande emne

Tenesta ScriptForge.TextStream

Input-funksjonen [VBA]

Open-uttrykket