ScriptForge.FileSystem-tjenesten

Indhold

# Tjenesten ScriptForge.FileSystem

Tjenesten FileSystem omfatter rutiner til håndtering af filer og mapper. Herefter er der nogle eksempler på funktionaliteter leveret af denne tjeneste:

- Verificer, om en fil eller en mappe eksisterer.

- Opret og slet mapper og filer.

- Start dialoger, der skal åbne/gemme filer.

- Tilgå listen over filer i en mappe og så videre.

Metoderne i tjenesten FileSystem er for det meste baseret på XSimpleFileAccess UNO interface.

## Definitioner

Tabellen herunder oplister hovedparameterne, der bruges af de fleste af metoderne i tjenesten FileSystem.

Parameter | Beskrivelse
--- | ---
FileName | Filens fulde navn medregnet stien uden et sti-skilletegn til sidst.
FolderName | Mappens fulde navn medregnet stien. Den indeholder måske eller måske ikke det afsluttende sti-skilletegn.
Name | Den sidste komponent i mappenavnet eller filnavnet medregnet dets udvidelse. Denne parameter udtrykkes altid med operativsystemets eget format.
BaseName | Den sidste komponent i mappenavnet eller filnavnet uden dets udvidelse.
NamePattern | Ethvert af de ovennnævnte navne indeholder jokere i dets sidste komponent. Tilladte jokere er: "?" repræsenterer et vilkårligt enkelttegn "*" repræsenterer nul, et eller flere tegn

Tjenesten FileSystem (Filsystem) tillader at udføre handlinger på flere filer på samme tid. Ved at bruge navne-mønstre kan brugerskripts kopiere, flytte eller slette flere filer. Omvendt kan indbyggede Basic-metoder kun håndtere enkelte filer.

### Notation af Filnavngivelse

Den notation, der bruges til at udtrykke fil- og mappe-navne, både i argumenter og returværdier, er defineret af egenskaben FileNaming i tjenesten FileSystem.

Kort beskrevet er de mulige repræsentationstyper "URL" (URL-filnotation), "SYS" (operativsystem-notation) og "ANY" (standard). Se mere information nedenfor.

Et eksempel på URL-notationen er file:///C:/Documents/my_file.odt. Overvej at bruge URL-notationen, hvorsomhelst det er muligt, fordi den er det alternativ, der bedst kan porteres.

Brug af genvejen "~" (tilde), som er almindelig i Linux-baserede operativsystemer, understøttes ikke til at udtrykke en sti til en mappe og filnavn. I stedet for at bruge "~/Documents/my_file.odt" bruger du den fulde sti "/home/user/Documents/my_file.odt".

## Kald af tjeneste

De følgende kodestumper kalder tjenesten FileSystem. Metoden BuildPath (Byg sti) blev brugt 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 et dokuments virtuelle filsystem

Dokumentfilerne i LibreOffice er komprimerede ZIP-filer, som indeholder de filer og mapper, der repræsenterer det aktuelle dokumentindhold. Mens dokumentet er åbent, er det muligt at tilgå dette virtuelle filsystem, udforske dets struktur, samt at læse og oprette filer og mapper.

Det følgende eksempel viser hvordan du kan oprette en tekstfil med navnet myFile.txt og gemme 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-stien til roden af det virtuelle filsystem
        sRoot = oDoc.FileSystem()
        sMyDir = sRoot & "myDir"
        ' Opretter mappen "myDir", hvis den ikke findes allerede
        If Not fso.FolderExists(sMyDir) Then
            fso.CreateFolder(sMyDir)
        End If
        ' Opretter filen og skriver noget tekst 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 metoder fra FileSystem-tjenesten bruges til at manipulere filer i dokumentets virtuelle filsystem. Der gælder dog følgende begrænsninger:

- Det er ikke muligt at oprette filer i rodmappen. Brug eksisterende undermapper eller opret nye mapper til at gemme filer i dokumentets filsystem.

- Notationen FileNaming for navngivning af filer anses altid for at være "URL".

- Metoderne CompareFiles, GetFileModified, HashFile, PickFile og PickFolder kan ikke bruges.

- Metoden GetFileLen returnerer altid nul.

- Metoden Normalize returnerer altid inputstrengen uændret.

Stien til det virtuelle filsystem er ikke en fysisk adresse på computerens harddisk. Stien kan kun tilgås inde fra et LibreOffice-script, og den eksisterer kun mens dokumentfilen er åben.

## Egenskaber

Navn | Readonly (Skrivebeskyttet) | Type | Beskrivelse
--- | --- | --- | ---
FileNaming | Nej | String | Sætter eller returnerer de aktuelle filers og mappers notation, enten "ANY", "URL" eller "SYS": "ANY": (standard) metoderne i tjenesten FileSystem accepterer både URL og det aktuelle operativsystems notation i input-argumenter, men returnerer altid URL-strenge. "URL": metoderne i tjenesten FileSystem forventer URL-notation i input-argumenter og returnerer URL-strenge. "SYS": metoderne i tjenesten FileSystem forventer det aktuelle operativsystems notation i både input- argumenter og returstrenge. Egenskaben FileNaming forbliver, når den en gang er sat, uændret enten indtil slutningen af LibreOffice-sessionen eller indtil den sættes igen.
ConfigFolder | Ja | String | Returnerer LibreOffices konfigurationsmappe.
ExtensionsFolder | Ja | String | Returnerer den mappe, hvor udvidelser installeres.
HomeFolder | Ja | String | Returnerer brugerens hjemme-mappe.
InstallFolder | Ja | String | Returnerer LibreOffices installationsmappe.
TemplatesFolder | Ja | String | Returnerer den mappe, der indefolder systemets skabelonfiler.
TemporaryFolder | Ja | String | Returnerer mappen til midlertidige filer, der er deineret i LibreOffice sti-indstillinger.
UserTemplatesFolder | Ja | String | Returnerer den mappe, der indeholder de brugerdefinerede skabelonfiler.

Liste oiver metoder i tjenesten 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

Samler en mappesti og navnet på en fil og returnerer det fulde navn med et gyldigt sti-skilletegn. Stil-skilletegnet tilføjes kun, hvis det er nødvendigt.

### Syntaks:

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

### Parametre:

mappenavn: Den sti, som name (navn) kombinerer. Den angivne sti behøver ikke at være en eksisterende mappe.

navn: Navnet på den fil, der tilføjes til foldername (mappenavn). Denne parameter bruger det aktuelle operativsystems notation.

### 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 (Sand), når de ser ud til at være ens.

Afhængigt af værdien af argumentet comparecontents (sammenlign_indhold), kan sammenligningen af to filer enten være baseret udelukkende på filattributterne (såsom den seneste ændringsdato) eller på filindholdet.

### Syntaks:

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

### Parametre:

filnavn1, finavn2: De filer, der skal sammenlignes.

sammenlign_indhold: Når True (sand), sammenlignes filernes indhold (standard = False (falsk)).

### 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 en eller flere filer fra en placering til en anden. Returnerer True (Sand), hvis mindst en fil er kopieret eller False (Falsk), hvis der er sket en fejl.

Der vil også ske en fejl, hvis parameteren source (kilde) bruger jokertegn eller ikke matcher nogen fil.

Metoden stopper umiddelbart efter, at den støder på en fejl. Metoden fører ikke tilbage eller annullerer ændringer, der blev foretaget, før fejlen skete.

### Syntaks:

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

### Parametre:

kilde: Kan være et FileName (filnavn) eller et NamePattern (navnemønster), der peger på en eller flere filer, der skal kopieres.

mål: Kan være enten et FileName (filnavn), der angiver, hvor den enkelte source (kilde)- fil skal kopieres til, er et FolderName (mappenavn), s om flere filer fra source (kilden) skal kopieres til.

- Hvis destination (målet) ikke findes, oprettes det.

- Jokertegn er ikke tilladt i destination (målet).

overskriv: Hvis True (sand) (standard), kan filer overskrives. Metoden mislykkes, hvis destination (målet) er skrivebeskyttet, uanset den værdi, der er angivet i overwrite (overskriv).

### Eksempel:

I eksemplerne herunder, kopierer den første linje en enkelt fil, mens den anden linje kopierer flere filer med jokere.

##### 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 opmærksom på, at undermapper og deres indhold ikke bliver kopierede, når der er brugt jokertegn i argumentet source.

## CopyFolder

Kopierer en eller flere filer fra en placering til en anden. Returnerer True, hvis mindst en mappe er kopieret eller False, hvis der er sket en fejl.

Der vil også ske en fejl, hvis parameteren source (kilde) bruger jokertegn og ikke matcher nogen mapper.

Metoden stopper øjeblikkeligt, efter at den støder på en fejl. Metoden fører ikke tilbage og annullerer heller ikke ændringer, der er foretaget, før fejlen skete.

### Syntaks:

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

### Parametre:

kilde: Det kan være et FolderName (mappenavn) eller et NamePattern (navnemønster), der peger på en eller flere filer, der skal kopieres.

mål: Angiver det FolderName (mappenavn). som den enkelte mappe eller flere mapper, der er defineret i source (kilde), skal kopieres til.

- Hvis destination (målet) ikke findes, oprettes det.

- Jokertegn er ikke tilladt i destination (målet).

overskriv: Hvis True (sand) (standar), kan filer overskrives. Metoden mislykkes, hvis destination (målet) er skrivebeskyttet, uanset den værdi, der er angivet i overwrite (overskriv).

### Eksempel:

I eksemplerne herunder kopieres alle filer, mapper og undermapper.

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

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

## CreateFolder

Opretter den angivne FolderName (Mappenavn). Returnerer True (Sand), hvis det kunne lykkes at oprette mappen.

Hvis den angivne mappe har en overordnet mappe, der ikke eksisterer, oprettes den.

### Syntaks:

svc.CreateFolder(foldername: str): bool

### Parametre:

mappenavn: En streng, der repræsenter den mappe, der skal oprettes. Hvis mappen allerede findes, sættes der et undtagelsesflag.

### Eksempel:

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

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

## CreateTextFile

Opretter en angivet fil og returnerer et eksemplar af tjenesten TextStream (tekst_strøm), der kan bruges til at skrive til filen.

Metoden returnerer objektet Null, hvis der skete en fejl.

### Syntaks:

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

### Parametre:

filnavn: Navnet på den fil, der skal oprettes.

overskriv: Boolsk værdi, der bestemmer, om filename (filnavnet) kan overskrives (standard = True (sand)).

indkodning: Det tegnsæt, der skal bruges. Standardindkodningen 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 at lære mere om navnene på tegnsæt, se siden IANA's Character Set. Vær opmærksom på, at LibreOffice ikke implementerer alle eksisterende tegnsæt.

## DeleteFile

Sletter en eller flere filer. Returnerer True (Sand), hvis mindst en fil blev slettet eller False (Falsk), hvis der skete en fejl.

Der vil også ske en fejl, hvis parameteren filename (filnavn) bruger jokertegn og ikke matcher nogen filer.

Filer, der skal slettes, må ikke være skrivebeskyttede.

Metoden stopper umiddelbart efter, at den støder på en fejl. Metoden ruller ikke tilbage og anullerer heller ikke ændringer, der belv foretaget, før fejlen skete.

### Syntaks:

svc.DeleteFile(filename: str): bool

### Parametre:

filnavn: Det kan være et FileName (filnavn) eller et NamePattern (navnemønster), der peger på en eller flere filer, der skal slettes.

### Eksempel:

I eksemplerne herunder slettes kun filer, undermapper slettes ikke.

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

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

## DeleteFolder

Sletter en eller flere mapper. Returnerer True (Sand), hvis mindst en mappe blev slettet eller False (Falsk), hvis der skete en fejl.

Der vil også ske en fejl, hvis parameteren foldername (mappenavn) bruger jokertegn og ikke matcher nogen mapper.

Mapper, der skal slettes, må ikke være readonly (skrivebeskyttet).

Metoden stopper umiddelbart efter, at den er stødt på en fejl. Metoder ruller ikke tilbage og anullerer heller ikke ændringer, der blev foretaget, før fejlen skete.

### Syntaks:

svc.DeleteFolder(foldername: str): bool

### Parametre:

mappenavn: Kan være et FolderName (mappenavn) eller et NamePattern (navnemønster), der peger på en eller flere mapper, der skal slettes.

### Eksempel:

I eksemplerne herunder slettes kun mapper og deres indhold. Filer i den overordnede mappe "C:\Temp" slettes ikke.

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

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

## ExtensionFolder

Returnerer en streng, der indeholder mappen, hvor den angivne udvidelsespakke er installeret.

Den aktuelle værdi af egenskaben SF_FileSystem.FileNaming bliver brugt til at bestemme notationen for den returnerede streng.

Brug egenskaben Udvidelser fra tjenesten Platform for at hente en strengmatrix med IDer på alle installerede udvidelser.

### Syntaks:

svc.ExtensionFolder(extension: str): str

### Parametre:

udvidelse: En strengværdi med udvidelsens ID. Hvis udvidelsen ikke er installeret, sættes et fejlflag.

### Eksempel:

Eksemplerne herunder i Basic og Python returnerer den mappe, hvor APSO-udvidelsen er installeret.

          ' 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 True (Sand), hvis en fil er gyldig og eksisterer, ellers returnerer metoden False (Falsk).

Hvis parameteren filename (filnavn) faktisk er et eksisterende mappenavn, returnerer metoden False (falsk).

### Syntaks:

svc.FileExists(filename: str): bool

### Parametre:

filnavn: En streng, der repræsenterer den fil, der 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 et nul-baseret array (BASIC) eller en tuple (Python) over filerne i en given mappe. Hvert element i arrayet eller tuplen er en streng, som indeholder det fulde sti- og filnavn.

Hvis argumentet foldername (mappenavn) angiver en mappe, der ikke findes, sættes der et undtagelsesflag.

Den resulterende liste kan filtreres med jokere.

### Syntaks:

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

### Parametre:

mappenavn: En streng, der repræsenterer en mappe. Mappen skal findes. Dette argument må ikke betegne en fil.

filter: En streng, der indeholder jokere ("?" og "*"), der bliver anvendt på den resulterende liste over filer (standard = "").

includesubfolders: Sæt dette argument til True for at medtage indholdet af undermapper (standard = False).

### Eksempel:

##### I Basic

          Dim filesList As Variant, file As String
          FSO.FileNaming = "SYS"
          ' Returnerer alle filer, som matcher filteret "*.txt", inklusive 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 (Sand), hvis det angivne FolderName (Mappenavn) er gyldigt og eksisterer, ellers returnerer metoden False (Falsk).

Hvis parameteren foldername (mappenavn) aktuelt er et eksisterede filnavn, returnerer metoden False (falsk).

### Syntaks:

svc.FolderExists(foldername: str): bool

### Parametre:

mappenavn: En streng, der repræsenterer den mappe, der 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 et filnavn eller en mappes BaseName (Basenavn) (lig med den sidste komponent) uden dens udvidelse.

Metoden tjekker ikke, om den angivne fil eller mappe eksisterer.

### Syntaks:

svc.GetBaseName(filename: str): str

### Parametre:

filnavn: En streng, der repræsenterer filnavnet og dets sti.

### Eksempel:

I eksemplerne herunder svarer det første metodekald GetBaseName (hent_basenavn) til en mappe, sådan at funktionen returnerer stiens sidste del. Det andet kald modtager et filnavn som input, sådan at filens navn returneres uden sin udvidelse.

##### 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 en fils udvidelsesdel eller et mappenavn eller en mappe uden tegnet punktum "." .

Metoden tjekker ikke den angivne fil eller mappes eksistens.

Hvis denne metode anvendes på et mappenavn eller en fil uden udvidelse, returneres en tom streng.

### Syntaks:

svc.GetExtension(filename: str): str

### Parametre:

filnavn: En streng, der repræsenterer filnavnet og dets sti.

### Eksempel:

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

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

## GetFileLen

Den indbyggede Basic-funktion FileLen (Fillængde) returnerer antallet af bytes i en fil som en Long (Lang) værdi, det vil sige op til 2GB.

Metoden GetFileLen (HentFillængde) kan håndtere meget større filer ved at returnere værdien Currency (Valuta).

### Syntaks:

svc.GetFileLen(filename: str): num

### Parametre:

filnavn: En streng, der repræsenterer 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 en given fils Sidst ændret-dato.

### Syntaks:

svc.GetFileModified(filename: str): datetime

### Parametre:

filnavn: En streng, der repræsenterer 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 sidste komponent i et fil- eller mappenavn i operativsystemets eget format.

Metoden tjekker ikke, om den angivne fil eller mappe eksisterer.

### Syntaks:

svc.GetName(filename: str): str

### Parametre:

filnavn: En streng, der repræsenterer filnavnet og dets sti.

### 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, der indeholder navnet på en angiven fils eller mappes overordnede mappe .

Metoden tjekker ikke, om den angivne fil eller mappe eksisterer.

### Syntaks:

svc.GetParentFolderName(filename: str): str

### Parametre:

filnavn: En streng med det fil- eller foldernavn, der 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 tilfældigt genereret midlertidigt filnavn, der er nyttigt til udførelse af operationer, der kræver en midlertidig fil.

Som standard har det returnerede filnavn ikke en filtype (fil-endelse). Brug parameteren extension for at angive endelsen på det filnavn, som skal genereres.

Mappe-delen af den returnerede streng er systemets midlertidige mappe.

Metoden opretter ikke den midlertidige fil.

### Syntaks:

svc.GetTempName(extension: str): str

### Parametre:

extension: Filtypen (fil-endelse) for den midlertidige fil (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-funktioner bruges af nogle kryptografiske algoritmer, i digital signaturer, besked-autentifikationkoder, afsløring af falskneri, fingeraftryk, tjeksummer (tjek af beskedintegritet), hash-tabeller, lagring af kodeord og meget mere.

Metoden HashFile (Hashfil) returnerer resultatet af en hash-funktion, der er anvendt på en given fil og med en angiven algoritme. Den returnerede værdi er en streng af hexadecimale cifre skrevet med små bogstaver.

De understøttede hash-algoritmer er: MD5, SHA1, SHA224, SHA256, SHA384 and SHA512.

### Syntaks:

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

### Parametre:

filnavn: En streng, der repræsenterer en eksisterende fil.

algoritme: En af de understøttede algoritmer.

### Eksempel:

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

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

## MoveFile

Flytter en eller flere filer fra en placering til en anden. Returnerer True (Sand), hvis i det mindste en fil er flyttet eller False (Falsk), hvis der er sket en fejl.

Der sker også en fejl, hvis parameteren source (kilde) bruger jokertegn og ikke matcher nogen filer.

Metoden stopper umiddelbart efter, at den støder på en fejl. Metoden ruller ikke tilbage og annullerer heller ikke ændringer, der er foretaget, før fejlen skete.

### Syntaks:

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

### Parametre:

kilde: Kan være et FileName (filnavn) eller et NamePattern (navnemønster) til at betegne en eller flere filer, der skal fjernes.

mål: Hvis source (kilden) er et FileName (filnavn), så peger denne parameter på den flyttede fils nye sti og filnavn.

Hvis flytte-handlingen omfatter flere filer, skal destination (målet) være et mappenavn. Hvis det ikke findes, oprettes det.

Hvis source (kilde) og destination (mål) har den samme overordnede mappe, omdøber metoden source (kilden).

Jokertegn tillades ikke i destination (målet).

### Eksempel:

I de følgende eksempler flyttes udelukkende filer, undermapper ikke.

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

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

## MoveFolder

Flytter en eller flere mapper fra en placering til en anden. Returnerer True (Sand), hvis mindst en mappe er flyttet, eller False (Faslk), hvis der er sket en fejl.

Der vil også ske en fejl, hvis parameteren source (kilde) bruger jokertegn og ikke matcher nogen mapper.

Metoden stopper umiddelbart efter, at den støder på en fejl. Metoden ruller ikke tilbage og annullerer heller ikke ændringer, der er foretaget, før fejlen skete.

### Syntaks:

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

### Parametre:

kilde: Kan være et FolderName (mappenavn) eller et NamePattern (navnemænster), der betegner en eller flere mapper, der skal flyttes.

mål: Hvis flytte-handlingen berører en enkelt mappe, er destination (målet) den flyttede mappes navn og sti og må ikke findes.

Hvis flere mapper flyttes, betegner destination (målet) det sted, som mapperne i source (kilden) bliver flyttet til. Hvis destination (målet) ikke findes, oprettes det.

Jokertegn er ikke tilladt i destination (målet).

### Eksempel:

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

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

## Normalize

Returnerer en streng, som indeholder de normaliserede stinavn ved at skjule overflødige skilletegn og referencer til højere niveauer.

For eksempel bliver stinavnene A//B, A/B/, A/./B og A/foo/../B alle normaliserede til A/B.

Under Windows bliver almindelige skråstreger "/" konverteret til baglæns skråstreger "\".

Den aktuelle værdi af egenskaben SF_FileSystem.FileNaming bruges til at bestemme notationen for argumentet filename samt formatet af den returnerede streng.

### Syntaks:

svc.Normalize(filename: str): str

### Parametre:

filename: En streng som repræsenterer et gyldigt stinavn. Filen eller kataloget repræsenteret af dette argument behøver ikke at eksistere.

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

Åbner en fil og returnerer objektet TextStream (Tekststrøm), som kan bruges til at læse fra, skrive i eller tilføje til filen.

Bemærk, at metoden ikke tjekker, om den givne fil faktisk er en tekstfil.

Metoden returnerer et Null-objekt (i Basic) eller None (i Python), hvis der skete en fejl.

### Syntaks:

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

### Parametre:

filnavn: Identificerer den fil, der skal åbnes.

io-tilstand: Angiver input/output-tilstanden. Kan være en af de tre konstanter: svc.ForReading (svc_til_læsning) (standard), svc.ForWriting (svc_til_skrivning) eller svc.ForAppending (svc_til_tilføjelse).

create: Boolsk værdi, der påpeger, om en ny fil kan oprettes, hvis det angivne filename (filnavn) ikke findes:

- Hvis True (Sand) oprettes en fil og dens overordnede mappe, hvis de ikke eksisterer;

- Hvis False (Falsk) oprettes de nye filer ikke (standard).

indkodning: Det tegnsæt, der skal bruges. Standardindkodningen 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

Åbner et dialog til at åbne eller gemme filer.

Hvis tilstanden SAVE (GEM) er sat og den udvalgte fil eksisterer, vises en advarsel.

### Syntaks:

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

### Parametre:

standardfil: Dette argument er en streng, der er sammensat af et mappe- og et filnavn:

- Mappedelen peger på den mappe, som bliver vist, når dialogen åbnes (standard = den sidst åbnede mappe).

- Fildelen peger på den standardfil, der skal åbnes eller gemmes.

tilstand: En strengværdi, der kan være enten "ÅBEN" (til input-filer) eller "GEM" (til output-filer). Standardværdien er "ÅBEN".

filter: Den udvidelse af filerne, der vises, når dialogen åbnes (standard = intet filter).

### Eksempel:

Eksemplerne herunder åbner en filvælger med filtret "txt" aktiveret.

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

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

## PickFolder

Åbner et dialogfelt for at vælge en mappe.

### Syntaks:

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

### Parametre:

standardmappe: En streng, der indeholder det mappenavn, der bliver vist, når dialogen åbnes (standard = den senest valgte mappe).

fritekst: Tekst, der skal vises i dialogen (standard = "").

### Eksempel:

          ' Basic
          aFolder = FSO.PickFolder("C:\Documents", "Vælg en mappe eller tryk på Annuller")

          # Python
          aFolder = fs.PickFolder(r"C:\Documents", "Vælg en mappe eller tryk på Annuller")

## SubFolders

Returnerer en nul-baseret matrix af strenge, der svarer til de mapper, der er gemt i et givet foldername (mappenavn).

Listen kan være filtreret med jokere.

### Syntaks:

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

### Parametre:

mappenavn: En streng, der repræsenterer en mappe. Mappen skal findes. foldername (mappenavnet) må ikke betegne en fil.

filter: En streng, der indeholder jokere ("?" og "*") og som bliver anvendt på den resulterende liste over mapper (standard = "").

includesubfolders: Set dette argument til True for at medtage indholdet af undermapper (standard = False).

### 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-rutiner eller identifikatorer, der indledes med et understregstegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.

Relaterede emner

Tjenesten ScriptForge.TextStream (tekst-strøm)

Input (funktion) [VBA]

erklæringen Open

Støt os venligst!