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:

note

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


tip

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.

In short, the possible representation types are "URL" (URL file notation), "SYS" (operating system notation) and "ANY" (default). See more information below.

tip

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.


warning

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

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.


Egenskaber

Navn

Readonly (Skrivebeskyttet)

Type

Beskrivelse

FileNaming

Nej

String

SĂŠtter eller returnerer de aktuelle filers og mappers notation, enten "ALLE", "URL" eller "SYS":

  • "ALLE": (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.

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

Be aware that subfolders and their contents are not copied when wildcards are used in the source argument.


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.

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

To learn more about the names of character sets, visit IANA's Character Set page. Be aware that LibreOffice does not implement all existing character sets.


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.

note

The current value of the property SF_FileSystem.FileNaming is used to determine the notation of the returned string.


tip

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 en nul-baseret matrix af filer, der er gemt i en given mappe. Hver element i matrixen er en streng, der indeholder den fulde sti og filnavnet.

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

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 opretter ikke den midlertidige fil.

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

Returns a string containing the normalized path name by collapsing redundant separators and up-level references.

For instance, the path names A//B, A/B/, A/./B and A/foo/../B are all normalized to A/B.

On Windows, forward slashes "/" are converted to backward slashes "\".

note

The current value of the property SF_FileSystem.FileNaming is used to determine the notation of the filename argument as well as the format of the returned string.


Syntaks:

svc.Normalize(filename: str): str

Parametre:

filename: a string representing a valid path name. The file or directory represented by this argument may not exist.

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:

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:

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


StĂžt os venligst!