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:

note

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


tip

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.

tip

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.


warning

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(...)
    

Accessing the Virtual File System of a Document

LibreOffice document files are compressed ZIP files that contain the files and folders that represent the actual document contents. While the document is open, it is possible to access this virtual file system, explore its structure, as well as read and create files and folders.

The following example shows how to create a text file named myFile.txt and store it inside the document's virtual file system.

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)
    ' Gets the URL path notation to the root of the virtual file system
    sRoot = oDoc.FileSystem()
    sMyDir = sRoot & "myDir"
    ' Creates the folder "myDir" if it does not exist
    If Not fso.FolderExists(sMyDir) Then
        fso.CreateFolder(sMyDir)
    End If
    ' Creates the file and write some text into it
    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()
  

In general, all methods of the FileSystem service can be used to manipulate files in the document's virtual file system. However, the following restrictions apply:

note

The path to the virtual file system is not a physical address on the computer's hard drive. It can only be accessed from within a LibreOffice script and it only exists while the document file is open.


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.

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

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.

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

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.

note

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


tip

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 = "").

includesubfolders: Set this argument to True to include the contents of subfolders (Default = False).

Eksempel:

I Basic

      Dim filesList As Variant, file As String
      FSO.FileNaming = "SYS"
      ' Returns all files matching the "*.txt" filter, including files in subfolders
      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.

By default, the returned file name does not have an extension. Use the extension parameter to specify the extension of the file name to be generated.

The folder part of the returned string is the system's temporary folder.

Metoden oppretter ikke den midlertidige filen.

Syntaks:

svc.GetTempName(extension: str): str

Parametre:

extension: The extension of the temporary file name (Default = "").

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 "\".

note

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:

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:

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 = "").

includesubfolders: Set this argument to True to include the contents of subfolders (Default = 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:
          # ...
    
warning

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.


Supporter oss!