Innhold

# ScriptForge.FileSystem-tjeneste

Tjenesten FileSystem inkluderer rutiner for å håndtere filer og mapper. Deretter følger noen eksempler på funksjonene som tilbys av denne tjenesten:

- Kontroller om det finnes en fil eller mappe.

- Opprett og slett mapper og filer.

- Start dialogbokser for å åpne/lagre filer.

- Få tilgang til listen over filer i en mappe osv.

Metodene i FileSystem-tjenesten er for det meste basert på XSimpleFileAccess UNO-grensesnitt.

## Definisjoner

Tabellen nedenfor viser hovedparametrene som brukes av de fleste metodene i FileSystem-tjenesten.

Parametre | Beskrivelse
--- | ---
FileName | Det fulle navnet på filen inkludert stien uten stiskilletegn på slutten.
FolderName | Det fulle navnet på mappen inkludert stien. Den kan inneholde eller ikke inneholde sluttstiseparatoren.
Name | Den siste komponenten i Mappenavn eller Filnavn inkludert utvidelsen. Denne parameteren uttrykkes alltid ved å bruke det opprinnelige formatet til operativsystemet.
BaseName | Den siste komponenten i Mappenavn eller Filnavn uten utvidelse.
NamePattern | Et av navnene ovenfor inneholder jokertegn i den siste komponenten. Tillatte jokertegn er: "?" representerer et enkelt tegn "*" representerer null, ett eller flere tegn

Tjenesten FileSystem gjør det mulig å utføre operasjoner over flere filer samtidig. Ved å bruke navnemønstre kan brukerskript kopiere, flytte eller slette flere filer. Omvendt kan grunnleggende innebygde metoder bare håndtere enkeltfiler.

### Filnavnnotasjon

Notasjonen som brukes til å uttrykke fil- og mappenavn, både for argumenter og returnerte verdier, er definert av egenskapen FileName til FileSystem-tjenesten.

Kort sagt, de tilgjengelige representasjonstypene er, "URL" (URL-filnotasjon), "SYS" (operativsystemnotasjon) og "ANY" (standard). Se mer informasjon nedenfor.

Et eksempel på URL-notasjonen er file:///C:/Documents/my_file.odt. Når det er mulig, bør du vurdere å bruke URL-notasjonen fordi det er et mer bærbart alternativ.

Bruken av snarveien "~" (tilde), som er vanlig i Linux-baserte operativsystemer, støttes ikke for å uttrykke en bane til en mappe og et filnavn. I stedet for å bruke "~/Documents/my_file.odt", bruk hele stien "/home/user/Documents/my_file.odt".

## Tjenestepåkallelse

Følgende kodebit starter FileSystem-tjenesten. Metoden BuildPath ble 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(...)

## Tilgang til det virtuelle filsystemet til et dokument

LibreOffice dokumentfiler er komprimerte ZIP-filer som inneholder filene og mappene som representerer det faktiske dokumentinnholdet. Mens dokumentet er åpent, er det mulig å få tilgang til dette virtuelle filsystemet, utforske strukturen, samt lese og opprette filer og mapper.

Følgende eksempel viser hvordan du oppretter en tekstfil kalt myFile.txt og lagrer den i dokumentets virtuelle filsystem.

##### 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)
        ' Henter URL-banenotasjonen til roten til det virtuelle filsystemet
        sRoot = oDoc.FileSystem()
        sMyDir = sRoot & "myDir"
        ' Oppretter mappen "myDir" hvis den ikke eksisterer
        If Not fso.FolderExists(sMyDir) Then
            fso.CreateFolder(sMyDir)
        End If
        ' Oppretter filen og skriver teksten inn i den
        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 metodene for FileSystem-tjenesten brukes til å manipulere filer i dokumentets virtuelle filsystem. Følgende begrensninger gjelder imidlertid:

- Det er ikke mulig å lage filer i rotmappen. Bruk eksisterende undermapper eller opprett nye mapper for å lagre filer i dokumentets filsystem.

- FileName-notasjonen anses alltid for å være "URL".

- Metodene CompareFiles, GetFileModified, HashFile, PickFile og PickFolder er ikke aktuelle.

- Metoden GetFileLen returnerer alltid null.

- Metoden Normaliser returnerer alltid inndatastrengen uendret.

Stien til det virtuelle filsystemet er ikke en fysisk adresse på datamaskinens harddisk. Det kan bare nås fra et LibreOffice-skript, og det eksisterer bare mens dokumentfilen er åpen.

## Egenskaper

Navn | Skrivebeskyttet | Type | Beskrivelse
--- | --- | --- | ---
FileNaming | Nei | String | Angir eller returnerer gjeldende fil- og mappenotasjon, enten "ANY", "URL" eller "SYS": "ANY": (standard) metodene til FileSystem-tjenesten aksepterer både URL og gjeldende operativsystems notasjon for input-argumenter, men returnerer alltid URL-strenger. "URL": metodene til FileSystem-tjenesten forventer URL-notasjon for input-argumenter og retur-URL-strenger. "SYS": metodene til FileSystem-tjenesten forventer gjeldende operativsystems notasjon for både input-argumenter og returstrenger. Når den er satt, forblir egenskapen FileName uendret enten til slutten av LibreOffice-økten eller til den settes på nytt.
ConfigFolder | Ja | String | Returnerer konfigurasjonsmappen til LibreOffice.
ExtensionsFolder | Ja | String | Returnerer mappen der utvidelser er installert.
HomeFolder | Ja | String | Returnerer brukerens hjemmemappe.
InstallFolder | Ja | String | Returnerer installasjonsmappen til LibreOffice.
TemplatesFolder | Ja | String | Returnerer mappen som inneholder systemmalfilene.
TemporaryFolder | Ja | String | Returnerer mappen for midlertidige filer som er definert i LibreOffice-baneinnstillingene.
UserTemplatesFolder | Ja | String | Returnerer mappen som inneholder de brukerdefinerte malfilene.

Liste over metoder i FileSystem Service
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

Kobler sammen en mappesti og navnet på en fil og returnerer hele filnavnet med en gyldig stiseparator. Stiskilleren legges bare til hvis nødvendig.

### Syntaks:

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

### Parametre:

mappenavn: Stien og navnet vil bli kombinert med. Den angitte stien trenger ikke å være en eksisterende mappe.

navn: Navnet på filen som skal legges til mappenavn. Denne parameteren bruker notasjonen til gjeldende operativsystem.

### 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

Sammenligner to filer og returnerer True når de virker identiske.

Avhengig av verdien av comparecontents-argumentet, kan sammenligningen mellom begge filene enten være basert på filattributter (som den siste endringsdatoen), eller basert på filinnholdet.

### Syntaks:

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

### Parametre:

filnavn1, filnavn2: Filene som skal sammenlignes.

comparecontents: Når Sann, sammenlignes innholdet i filene (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 én eller flere filer fra ett sted til et annet. Returnerer Sann hvis minst én fil har blitt kopiert eller Usann hvis det oppstod en feil.

En feil vil også oppstå hvis parameteren kilde bruker jokertegn og ikke samsvarer med noen filer.

Metoden stopper umiddelbart etter at den støter på en feil. Metoden ruller ikke tilbake og angrer heller ikke endringer som ble gjort før feilen oppsto.

### Syntaks:

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

### Parametre:

kilde: Det kan være et Filnavn eller et Navnemønster som indikerer en eller flere filer som skal kopieres.

destinasjon: Det kan enten være et Filnavn som spesifiserer hvor den enkelte kilde-filen skal kopieres, eller et FolderName som de flere filene fra kilde skal kopieres til.

- Hvis destinasjon ikke eksisterer, blir den opprettet.

- Jokertegn er ikke tillatt i destinasjon.

overskriv: Hvis Sann (standard), kan filer bli overskrevet. Metoden vil mislykkes hvis destinasjon er skrivebeskyttet, uavhengig av verdien spesifisert i overskriv.

### Eksempel:

I eksemplene nedenfor kopierer den første linjen en enkelt fil, mens den andre linjen kopierer flere filer med jokertegn.

##### 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)

Vær oppmerksom på at undermapper og deres innhold ikke kopieres når jokertegn brukes i kilde-argumentet.

## CopyFolder

Kopierer en eller flere mapper fra ett sted til et annet. Returnerer True hvis minst én mappe har blitt kopiert eller Usann hvis det oppstod en feil.

En feil vil også oppstå hvis parameteren kilde bruker jokertegn og ikke samsvarer med noen mapper.

Metoden stopper umiddelbart etter at den støter på en feil. Metoden ruller ikke tilbake og angrer heller ikke endringer som ble gjort før feilen oppsto.

### Syntaks:

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

### Parametre:

kilde: Det kan være et FolderName eller et NamePattern som indikerer at en eller flere mapper skal kopieres.

destinasjon: Spesifiserer FolderName som enkelt eller flere mapper definert i kilde skal kopieres til.

- Hvis destinasjon ikke eksisterer, blir den opprettet.

- Jokertegn er ikke tillatt i destinasjon.

overskriv: Hvis True (standard), kan filer bli overskrevet. Metoden vil mislykkes hvis destinasjon er skrivebeskyttet, uavhengig av verdien spesifisert i overskriv.

### Eksempel:

I eksemplene nedenfor er alle filer, mapper og undermapper kopiert.

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

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

## CreateFolder

Oppretter det angitte mappenavnet. Returnerer True hvis mappen kunne opprettes.

Hvis den angitte mappen har en overordnet mappe som ikke eksisterer, opprettes den.

### Syntaks:

svc.CreateFolder(foldername: str): bool

### Parametre:

mappenavn: En streng som representerer mappen som skal opprettes. Hvis mappen allerede eksisterer, vil det bli et unntak.

### Eksempel:

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

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

## CreateTextFile

Oppretter en spesifisert fil og returnerer en TextStream tjenesteforekomst som kan brukes til å skrive til filen.

Metoden returnerer et Null-objekt hvis det oppstod en feil.

### Syntaks:

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

### Parametre:

filnavn: Navnet på filen som skal opprettes.

overskriv: Boolsk verdi som bestemmer om filnavn kan overskrives (standard = Sann).

koding: Tegnsettet som skal brukes. Standardkodingen er "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)

For å lære mer om navnene på tegnsett, besøk IANAs tegnsett side. Vær oppmerksom på at LibreOffice ikke implementerer alle eksisterende tegnsett.

## DeleteFile

Sletter én eller flere filer. Returnerer True hvis minst én fil er slettet eller Usann hvis det oppstod en feil.

En feil vil også oppstå hvis parameteren filnavn bruker jokertegn og ikke samsvarer med noen filer.

Filene som skal slettes kan ikke være skrivebeskyttede.

Metoden stopper umiddelbart etter at den støter på en feil. Metoden ruller ikke tilbake og angrer heller ikke endringer som ble gjort før feilen oppsto.

### Syntaks:

svc.DeleteFile(filename: str): bool

### Parametre:

filnavn: Det kan være et Filnavn eller et navnemønster som indikerer en eller flere filer som skal slettes.

### Eksempel:

I eksemplene nedenfor slettes bare filer, undermapper slettes ikke.

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

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

## DeleteFolder

Sletter én eller flere mapper. Returnerer Sann hvis minst én mappe er slettet eller Usann hvis det oppstod en feil.

En feil vil også oppstå hvis parameteren mappenavn bruker jokertegn og ikke samsvarer med noen mapper.

Mappene som skal slettes kan ikke være skrivebeskyttet.

Metoden stopper umiddelbart etter at den støter på en feil. Metoden ruller ikke tilbake og angrer heller ikke endringer som ble gjort før feilen oppsto.

### Syntaks:

svc.DeleteFolder(foldername: str): bool

### Parametre:

mappenavn: Det kan være et Mappenavn eller et Navnemønster som indikerer en eller flere mapper som skal slettes.

### Eksempel:

I eksemplene nedenfor slettes bare mapper og deres innhold. Filer i den overordnede mappen "C:\Temp" blir ikke slettet.

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

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

## ExtensionFolder

Returnerer en streng som inneholder mappen der den angitte utvidelsespakken er installert.

Den nåværende verdien til egenskapen SF_FileSystem.FileName brukes til å bestemme notasjonen til den returnerte strengen.

Bruk egenskapen Utvidelser fra plattformen tjeneste for å få strenge matrise med ID-ene til alle installerte utvidelser.

### Syntaks:

svc.ExtensionFolder(extension: str): str

### Parametre:

utvidelse: En strengverdi med ID-en til utvidelsen. Hvis utvidelsen ikke er installert, oppstår et unntak.

### Eksempel:

Eksemplene nedenfor i Basic og Python returnerer mappen der APSO-utvidelsen er installert.

          ' 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 hvis et gitt filnavn er gyldig og eksisterer, ellers returnerer metoden Usann.

Hvis parameteren filnavn faktisk er et eksisterende mappenavn, returnerer metoden Usann.

### Syntaks:

svc.FileExists(filename: str): bool

### Parametre:

filnavn: En streng som representerer filen som skal testes.

### 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 en null-basert matrise av filene som er lagret i en gitt mappe. Hver oppføring i matrisen er en streng som inneholder hele banen og filnavnet.

Hvis argumentet mappenavn spesifiserer en mappe som ikke eksisterer, oppstår et unntak.

Den resulterende listen kan filtreres med jokertegn.

### Syntaks:

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

### Parametre:

mappenavn: En streng som representerer en mappe. Mappen må eksistere. Dette argumentet må ikke angi en fil.

filter: En streng som inneholder jokertegn ("?" og "*") som vil bli brukt på den resulterende listen over filer (standard = "").

inkluder undermapper: Sett dette argumentet til Sann for å inkludere innholdet i undermapper (Standard = Usann).

### Eksempel:

##### I Basic

          Dim filesList As Variant, file As String
          FSO.FileNaming = "SYS"
          ' Returnerer alle filer som samsvarer med "*.txt"-filteret, inkludert filer i undermapper
          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 True hvis det spesifiserte FolderName er gyldig og eksisterer, ellers returnerer metoden Usann.

Hvis parameteren mappenavn faktisk er et eksisterende filnavn, returnerer metoden Usann.

### Syntaks:

svc.FolderExists(foldername: str): bool

### Parametre:

mappenavn: En streng som representerer mappen som skal testes.

### 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 BaseName (lik den siste komponenten) til en mappe eller filnavn, uten filtypen.

Metoden sjekker ikke om den angitte filen eller mappen eksisterer.

### Syntaks:

svc.GetBaseName(filename: str): str

### Parametre:

filnavn: En streng som representerer filnavnet og dens bane.

### Eksempel:

I eksemplene nedenfor tilsvarer det første GetBaseName metodekallet en mappe, så funksjonen returnerer den siste komponenten i stien. Den andre samtalen mottar et filnavn som input, så navnet på filen returneres uten filtypen.

##### 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 utvidelsesdelen av et fil- eller mappenavn uten prikken "." tegn.

Metoden sjekker ikke eksistensen av den angitte filen eller mappen.

Hvis denne metoden brukes på et mappenavn eller på en fil uten utvidelse, returneres en tom streng.

### Syntaks:

svc.GetExtension(filename: str): str

### Parametre:

filnavn: En streng som representerer filnavnet og dens sti.

### Eksempel:

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

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

## GetFileLen

Den innebygde FileLen Basic-funksjonen returnerer antall byte i en fil som en Long-verdi, dvs. opptil 2 GB.

Metoden GetFileLen kan håndtere filer med mye større størrelser ved å returnere en Valuta-verdi.

### Syntaks:

svc.GetFileLen(filename: str): num

### Parametre:

filnavn: En streng som representerer en eksisterende fil.

### 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 den siste endrede datoen for en gitt fil.

### Syntaks:

svc.GetFileModified(filename: str): datetime

### Parametre:

filnavn: En streng som representerer en eksisterende fil.

### 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 et fil- eller mappenavn i opprinnelig operativsystemformat.

Metoden sjekker ikke om den angitte filen eller mappen eksisterer.

### Syntaks:

svc.GetName(filename: str): str

### Parametre:

filnavn: En streng som representerer filnavnet og dens bane.

### Eksempel:

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

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

## GetParentFolderName

Returnerer en streng som inneholder navnet på den overordnede mappen til et spesifisert fil- eller mappenavn.

Metoden sjekker ikke om den angitte filen eller mappen eksisterer.

### Syntaks:

svc.GetParentFolderName(filename: str): str

### Parametre:

filnavn: En streng med fil- eller mappenavnet som skal analyseres.

### Eksempel:

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

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

## GetTempName

Returnerer et tilfeldig generert midlertidig filnavn som er nyttig for å utføre operasjoner som krever en midlertidig fil.

Som standard har ikke det returnerte filnavnet en filtype. Bruk parameteren extension for å spesifisere filtypen til filnavnet som skal genereres.

Mappedelen av den returnerte strengen er systemets midlertidige mappe.

Metoden oppretter ikke den midlertidige filen.

### Syntaks:

svc.GetTempName(extension: str): str

### Parametre:

utvidelse: Utvidelsen til det midlertidige filnavnet (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-funksjoner brukes av noen kryptografiske algoritmer, i digitale signaturer, meldingsautentiseringskoder, svindeldeteksjon, fingeravtrykk, sjekksummer (meldingsintegritetssjekk), hashtabeller, passordlagring og mye mer.

Metoden HashFile returnerer resultatet av en hash-funksjon, brukt på en gitt fil og ved hjelp av en spesifisert algoritme. Den returnerte verdien er en streng med små heksadesimale tall.

Hash-algoritmene som støttes er: MD5, SHA1, SHA224, SHA256, SHA384 og SHA512.

### Syntaks:

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

### Parametre:

filnavn: En streng som representerer en eksisterende fil.

algoritme: En av de støttede algoritmene.

### Eksempel:

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

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

## MoveFile

Flytter én eller flere filer fra ett sted til et annet. Returnerer Sann hvis minst én fil har blitt flyttet eller Usann hvis det oppstod en feil.

En feil vil også oppstå hvis parameteren kilde bruker jokertegn og ikke samsvarer med noen filer.

Metoden stopper umiddelbart etter at den støter på en feil. Metoden ruller ikke tilbake og angrer heller ikke endringer som ble gjort før feilen oppsto.

### Syntaks:

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

### Parametre:

kilde: Det kan være et Filnavn eller Navnemønster for å angi én eller flere filer som skal flyttes.

destinasjon: Hvis kilde er et Filnavn, indikerer denne parameteren den nye banen og filnavnet til den flyttede filen.

Hvis flyttingen involverer flere filer, må destinasjon være et mappenavn. Hvis det ikke finnes, er det opprettet.

Hvis kilde og destinasjon har samme overordnede mappe, vil metoden gi nytt navn til kilden.

Jokertegn er ikke tillatt i destinasjon.

### Eksempel:

I de følgende eksemplene flyttes bare filer, ikke undermapper.

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

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

## MoveFolder

Flytter én eller flere mapper fra ett sted til et annet. Returnerer True hvis minst én mappe har blitt flyttet eller False hvis det oppstod en feil.

En feil vil også oppstå hvis parameteren kilde bruker jokertegn og ikke samsvarer med noen mapper.

Metoden stopper umiddelbart etter at den støter på en feil. Metoden ruller ikke tilbake og angrer heller ikke endringer som ble gjort før feilen oppsto.

### Syntaks:

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

### Parametre:

kilde: Det kan være et FolderName eller NamePattern for å angi en eller flere mapper som skal flyttes.

destinasjon: Hvis flytteoperasjonen involverer en enkelt mappe, er destinasjon navnet og banen til den flyttede mappen, og den kan ikke eksistere.

Hvis flere mapper flyttes, angir destinasjon hvor mappene i kilde skal flyttes til. Hvis destinasjon ikke eksisterer, blir den opprettet.

Jokertegn er ikke tillatt i destinasjon.

### Eksempel:

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

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

## Normalize

Returnerer en streng som inneholder det normaliserte banenavnet ved å skjule redundante skilletegn og referanser på høyere nivå.

For eksempel stinavnene A//B, A/B/, A/./B og A/foo/ ../B er alle normalisert til A/B.

På Windows konverteres skråstreker "/" til bakover skråstreker "\".

Den nåværende verdien av egenskapen SF_FileSystem.FileName brukes til å bestemme notasjonen til filnavn-argumentet samt formatet til den returnerte strengen.

### Syntaks:

svc.Normalize(filename: str): str

### Parametre:

filnavn: en streng som representerer et gyldig banenavn. Filen eller katalogen representert av dette argumentet eksisterer kanskje ikke.

### 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

Åpner en fil og returnerer et TextStream-objekt som kan brukes til å lese fra, skrive til eller legge til filen.

Merk at metoden ikke sjekker om den gitte filen virkelig er en tekstfil.

Metoden returnerer et Null-objekt (i Basic) eller Ingen (i Python) hvis det oppstod en feil.

### Syntaks:

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

### Parametre:

filnavn: Identifiserer filen som skal åpnes.

iomode: Indikerer inn-/utgangsmodus. Det kan være en av tre konstanter: svc.ForReading (standard), svc.ForWriting eller svc.ForAppending.

opprett: Boolsk verdi som indikerer om en ny fil kan opprettes hvis det angitte filnavnet ikke eksisterer:

- Hvis Sann vil en ny fil og dens overordnede mapper bli opprettet hvis de ikke eksisterer;

- Hvis Usann opprettes ikke nye filer (standard).

koding: Tegnsettet som skal brukes. Standardkodingen er "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

Åpner en dialogboks for å åpne eller lagre filer.

Hvis LAGRE-modusen er satt og den valgte filen eksisterer, vil en advarsel vises.

### Syntaks:

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

### Parametre:

standardfil: Dette argumentet er en streng som består av en mappe og et filnavn:

- Mappedelen indikerer mappen som vil vises når dialogen åpnes (standard = den sist valgte mappen).

- Fildelen angir standardfilen som skal åpnes eller lagres.

modus: En strengverdi som kan være enten "OPEN" (for inndatafiler) eller "SAVE" (for utdatafiler). Standardverdien er "OPEN".

filter: Utvidelsen til filene som vises når dialogboksen åpnes (standard = ingen filter).

### Eksempel:

Eksemplene nedenfor åpner en filvelger med "txt"-filteret brukt.

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

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

## PickFolder

Åpner en dialogboks for å velge en mappe.

### Syntaks:

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

### Parametre:

standardmappe: En streng som inneholder mappenavnet som vil vises når dialogboksen åpnes (standard = den sist valgte mappen).

fritekst: Tekst som skal vises i dialogboksen (standard = "").

### Eksempel:

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

          # Python
          aFolder = fs.PickFolder(r"C:\Documents", "Velg en mappe eller trykk på Avbryt")

## SubFolders

Returnerer en null-basert matrise med strenger som tilsvarer mappene som er lagret i et gitt mappenavn.

Listen kan filtreres med jokertegn.

### Syntaks:

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

### Parametre:

mappenavn: En streng som representerer en mappe. Mappen må eksistere. mappenavn må ikke angi en fil.

filter: En streng som inneholder jokertegn ("?" og "*") som vil bli brukt på den resulterende listen over mapper (standard = "").

inkluder undermapper: Sett dette argumentet til Usann for å inkludere innholdet i undermapper (Standard = Sann).

### 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 Grunnleggende rutiner eller identifikatorer som er prefikset med et understrekingstegn "_" er reservert for intern bruk. De er ikke ment å brukes i grunnleggende makroer eller Python-skript.

Lignende emner

ScriptForge.TextStream-tjeneste

Inndata Funksjon [VBA]

Åpnings uttrykk