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