Tenesta ScriptForge.FileSystem

Tenesta FileSystem inneheld rutinar for handsaming av filer og mapper. Her kjem nokre eksempel på funksjonane som vert leverte av denne tenesta:

note

Metodane i tenesta FileSystem er for det meste basert på XSimpleFileAccess UNO interface.


Definisjonar

Tabellen nedanfor viser hovudparameterane som vert brukte av dei fleste metodane i FileSystem-tenestene.

Parameter

Beskriving

FileName

Det fullstendige namnet på filen, inkludert stien utan eit stiskiljeteikn til slutt.

FolderName

Det fullstendige namnet på mappa, inkludert stien. Det kan innehalda eller ikkje innehalda det avsluttande stiskilleteiknet.

Name

Den siste komponenten i mappenamnet eller filnamnet inkludert utvidinga. Denne parameteren vert alltid sett med formatet brukt i operativsystemet.

BaseName

Den siste komponenten i mappenamnet eller filnamnet utan utvidinga.

NamePattern

Nokre av namna ovanfor inneheld jokerteikn i den siste komponenten. Tillatne jokerteikn er:

  • "?" står for eitt enkelt teikn

  • "*" står for ingen, eitt eller fleire teikn


tip

Tenesta FileSystem gjer det mogleg å utføra operasjonar på fleire filer samstundes. Ved hjelp av namnemønster kan brukarskript kopiera, flytta eller slette fleire filer. På den annen sida kan grunnleggjande innebygde metodar berre handsama enkeltfiler.


Notasjon for filnamn

Notasjonen som vert brukt for å uttrykkja fil- og mappe-namn, både i argumenta og returverdiane, er definerte av eigenskapen FileNaming i tenesta FileSystem.

Kort sagt, dei moglege representasjonstypane er «URL» (URL-filnotasjon), «SYS» (operativsystemnotasjon) og «ANY» (standard). Sjå meir informasjon i nedanfor.

tip

Eit eksempel på URL-notasjonen er file:///C:/Documents/my_file.odt. Når det er mogleg, bør du vurdera å bruka URL-notasjonen fordi det er eit meir berbart alternativ.


warning

Bruk av snarvegen «~» (tilde), som er vanleg i Linux-baserte operativsystem, for å uttrykkja ein bane til ei mappe og filnamn, vert ikkje støtta. I staden for å bruka "~/Dokument/mi_fil.odt" brukar du heile stien: "/home/user/Dokument/mi_fil.odt".


Oppkall av tenester

Den neste kodesnutten kallar opp tenesta FileSystem. Metoden BuildPath er 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(...)
    

Få tilgang til det virtuelle filsystemet til eit dokument

Dokumentfilene i LibreOffice er komprimerte ZIP-filer som inneheld filene og mappene som representerer det faktiske dokumentinnhaldet. Medan dokumentet er ope, er det mogleg å få tilgang til dette virtuelle filsystemet, utforska strukturen og dessutan lesa og oppretta filer og mapper.

Eksempelet nedanfor viser korleis du opprettar ei tekstfil kalla myFile.txt og lagrar ho i det virtuelle filsystemet til dokumentet.

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)
    ' Hentar URL-stinotasjonen til rota av det virtuelle filsystemet
    sRoot = oDoc.FileSystem()
    sMyDir = sRoot & "myDir"
    ' Lagar mappa «myDir» viss ho ikkje finst frå før
    If Not fso.FolderExists(sMyDir) Then
        fso.CreateFolder(sMyDir)
    End If
    ' Lagar fila og skriv noko tekst i ho
    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 metodane til tenesta FileSystem verta brukte til å manipulera filer i det virtuelle filsystemet til dokumentet. Følgjande avgrensingar gjeld likevel:

note

Stien til det virtuelle filsystemet er ikkje ei fysisk adresse på harddisken til datamaskinen. Han kan berre nåast frå eit % PRODUCTNAME-skript og finst berre medan dokumentfila er ope.


Eigenskapar

Namn

Skriveverna

Type

Beskriving

FileNaming

Nei

String

Set eller returnerer gjeldande fil- og mappenotasjon, anten «ANY», «URL» eller «SYS»:

  • "ANY": (standard) metodane i tenesta FileSystem godtar både URL-adressa og gjeldande operativsystemnotasjon for inndataargument, men returnerer alltid URL-strengar.

  • "URL": metodane i tenesta FileSystem ventar URL-notasjon i inndata-argument og returnerer URL-strengar.

  • "SYS": metodane i tenesta FileSystem ventar operativsystemet sin notasjon brukt både i inndata-argument og returnerstrengane.

Når eigenskapen FileNaming er sett, vert han uendra anten til slutten av LibreOffice-økta eller til han vert sett på nytt.

ConfigFolder

Ja

String

Returnerer konfigurasjonsmappa for LibreOffice.

ExtensionsFolder

Ja

String

Returnerer mappa som utvidingane er installerte i.

HomeFolder

Ja

String

Returnerer brukaren si heimemappe.

InstallFolder

Ja

String

Returnerer installasjonsmappa for LibreOffice.

TemplatesFolder

Ja

String

Returnerer mappa som inneheld systemet sine malfiler.

TemporaryFolder

Ja

String

Returnerer mappa til dei mellombels filene som er definerte i LibreOffice sti-innstillingar.

UserTemplatesFolder

Ja

String

Returnerer mappa som inneheld dei brukardefinerte malfilene.


Liste over metodar i tenesta 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

Slår saman ein mappesti og namnet på ei fil og returnerer det fullstendige filnamnet med eit gyldig stikiljeteikn. Stiskiljeteiknet vert lagt til berre om det er nødvendig.

Syntaks:

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

Parametrar:

foldername: Stien som name skal kombinerast med. Den gjevne stien treng ikkje vera til ei mappe som finst frå før.

name: Namnet på fila som skal føyast til foldername. Denne parameteren brukar notasjonen til det gjeldande operativsystemet.

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

Samanliknar to filer og returnerer Sann når dei ser ut til å vera like.

Avhengig av verdien til argumentet comparecontents, kan samanlikninga mellom begge filene anten berre vera basert på filattributt (for eksempel den sist endra datoen), eller basert på filinnhaldet.

Syntaks:

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

Parametrar:

filename1, filename2: Filene som skal samanliknast.

comparecontents: Når Sann, vert innhaldet av filene samanlikna (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 éi eller fleire filer frå éin stad til ein annan. Returnerer Sann viss minst éi fil er kopiert, eller Usann viss det skjedde ein feil.

Det oppstår ein feil viss parameteren source brukar jokerteikn og det ikkje er samsvar med noko fil.

Metoden stoppar straks når det oppstår ein feil. Metoden rullar ikkje tilbake, og angrar heller ikkje endringar som vart gjort før feilen oppstod.

Syntaks:

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

Parametrar:

source: Det kan vera eit FileName eller eit NamePattern som peikar på éi eller fleire filer som skal kopierast.

destination: Kan vera anten eit FileName som spesifiserer kvar den enkle source-fila skal kopierast til, eller eit FolderName som fleire filer frå source skal kopierast til.

overwrite: Viss Sann (standard), kan filene overskrivast. Metoden vil ikkje lukkast viss destination er skriveverna, same kva verdi som er sett i overwrite.

Eksempel:

I eksempla nedanfor kopierer den første linja ei enkelt fil, medan den anden linja kopierer fleire filer med jokerteikn.

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

Ver merksam på at undermapper og innhaldet i dei ikkje vert kopiert når det er brukt jokerteikn i argumentet source.


CopyFolder

Kopierer éi eller fleire mapper frå éin stad til ein annan. Returnerer Sann viss minst éi mappe er kopiert, eller Usann viss det skjedde ein feil.

Det oppstår ein feil viss parameteren source brukar jokerteikn og det ikkje er samsvar med noko mappe.

Metoden stoppar straks når det oppstår ein feil. Metoden rullar ikkje tilbake, og angrar heller ikkje endringar som vart gjort før feilen oppstod.

Syntaks:

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

Parametrar:

source: Kan vera eit FolderName eller NamePattern som peikar på éi eller fleire mapper som skal kopierast.

destination: Spesifiserer det FolderName som éi eller fleire mapper, definert i source, skal kopierast til.

overwrite: Viss Sann (standard), kan filene overskrivast. Metoden vil ikkje lukkast viss destination er skriveverna, same kva verdi som er sett i overwrite.

Eksempel:

I eksempla nedanfor vert alle filer, mapper og undermapper kopierte.


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

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

CreateFolder

Lagar det spesifiserte FolderName. Returnerer Sann viss det kan lukkast å laga mappa.

Viss den spesifiserte mappa har ei overordna mappe som ikkje finst, vert denne laga.

Syntaks:

svc.CreateFolder(foldername: str): bool

Parametrar:

foldername: Ein streng som representerer mappa som skal lagast. Viss mappa finst frå før, vert det sett opp eit unnatak.

Eksempel:


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

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

CreateTextFile

Lagar ei spesifisert fil og returnerer tenesta TextStream som kan brukast for å skriva til fila.

Metoden returnerer objektet Null viss det går feil.

Syntaks:

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

Parametrar:

filename: Namnet på fila som skal lagast.

overwrite: Boolsk verdi som bestemmer om filename kan overskrivast (standard = Sann).

encoding: Teiknsettet som skal brukast. Standard = «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

Du kan sjå meir om namna på teiknsett på IANAs Character Se side. Ver merksam på at LibreOffice ikkje implementerer alle teiknsetta som finst.


DeleteFile

Slettar éi eller fleire filer. Returnerer Sann viss minst éi fil er sletta, eller Usann viss det skjedde ein feil.

Det oppstår også ein feil viss parameteren filename brukar jokerteikn og det ikkje er samsvar med filene.

Fila som skal slettast må ikkje vera skriveverna.

Metoden stoppar straks når det oppstår ein feil. Metoden rullar ikkje tilbake, og angrar heller ikkje endringar som vart gjort før feilen oppstod.

Syntaks:

svc.DeleteFile(filename: str): bool

Parametrar:

filename: Det kan vera eit FileName eller eit NamePattern som indikerer éi eller fleire filer som skal slettast.

Eksempel:

I eksempla nedanfor vert berre filer sletta. Undermapper vert ikkje sletta.


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

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

DeleteFolder

Slettar éi eller fleire mapper. Returnerer Sann viss minst éi mappe er sletta, eller Usann viss det skjedde ein feil.

Det oppstår også ein feil viss parameteren foldername brukar jokerteikn og det ikkje er samsvar med filene.

Mappa som skal slettast må ikkje vera skriveverna.

Metoden stoppar straks når det oppstår ein feil. Metoden rullar ikkje tilbake, og angrar heller ikkje endringar som vart gjort før feilen oppstod.

Syntaks:

svc.DeleteFolder(foldername: str): bool

Parametrar:

foldername: Det kan vera eit FolderName eller NamePattern som indikerer éi eller fleire mapper som skal slettast.

Eksempel:

I eksempla nedanfor vert berre mapper og innhaldet i dei sletta. Filer i i den overordna mappa «C:\Temp» vert ikkje sletta.


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

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

ExtensionFolder

Returnerer ein streng som inneheld mappa der den gjevne utvidingspakken er installert.

note

Den gjeldande verdien til eigenskapen SF_FileSystem.FileName vert brukt til å bestemma notasjonen brukt i den returnerte strengen.


tip

Bruk eigenskapen Utvidingar frå plattforma teneste for å få strengmatrise med ID-ane til alle installerte utvidingar.


Syntaks:

svc.ExtensionFolder(extension: str): str

Parametrar:

utviding: Ein strengverdi med ID-en til utvidinga. Viss utvidinga ikkje er installert, vert det sett opp eit unnatak.

Eksempel:

Eksempla nedføre i Basic og Python returnerer mappa som APSO-utvidinga er installert i.


      ' 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 viss eit gjeve filnamn er gyldig og fila finst, elles returnerer metoden Usann.

Viss parameteren filename er eit mappenamn som finst frå før, returnerer metoden Usann.

Syntaks:

svc.FileExists(filename: str): bool

Parametrar:

filename: Ein streng som representerer fila som skal testast.

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 ei null-basert matrise av filene som er lagra i ei gjeve mappe. Kvart element i matrisa er ein streng som inneheld full sti og filnamnet.

Viss argumentet foldername spesifiserer ei mappe som ikkje finst, vert det sett eit unnatak.

Den resulterande lista kan filtrerast med jokerteikn.

Syntaks:

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

Parametrar:

foldername: Ein streng som representerer ei mappe. Mappa må finnast. Dette argument må ikkje visa til ei fil.

filter: Ein streng som inneheld jokerteikn («?» og «*») som vert brukt i den resulterande lista over filer (standard = "").

includesubfolders: Set dette argumentet til Sann for å ta med innhaldet i undermappene (standard = Usann).

Eksempel:

I Basic

      Dim filesList As Variant, file As String
      FSO.FileNaming = "SYS"
      ' Returnerer alle filene som passar «*.txt»-filteret, også filene u undermappene
      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 Sann viss det spesifiserte foldername er gyldig og fila finst, elles returnerer metoden Usann.

Viss parameteren foldername faktisk er eit filnamn, returnerer metoden Usann.

Syntaks:

svc.FolderExists(foldername: str): bool

Parametrar:

foldername: Ein streng som representerer mappa som skal testast.

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 filnamnet eller mappenamnet BaseName (same som den siste komponenten) utan filutvidinga.

Metoden kontrollerer ikkje om den spesifiserte fila eller mappa finst frå før.

Syntaks:

svc.GetBaseName(filename: str): str

Parametrar:

filename: Ein streng som representerer filnamnet med stien.

Eksempel:

I eksempla nedanfor kallar den første metoden GetBaseName opp ei mappe, slik at funksjonen returnerer den siste komponenten i stien. Det andre oppkallet mottek eit filnamn som inndata, slik at namnet på fila vert returnert utan filetternamnet.

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 filtypen for ei fil eller ei mappe utan teiknet punktum «.».

Metoden kontrollerer ikkje om den spesifiserte fila eller mappa finst frå før.

Viss denne metoden vert brukt på eit mappenamn eller ei fil utan filetternam, vert det returnert ein tom streng.

Syntaks:

svc.GetExtension(filename: str): str

Parametrar:

filename: Ein streng som representerer filnamnet med stien.

Eksempel:


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

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

GetFileLen

Den innebygde Basic-funksjonen FileLen returnerer talet på byte i ei fil som ein Long-verdi, det vil seia opp til 2GB.

Metoden GetFileLen kan handsama mykje større filer ved å returnera verdien Currency.

Syntaks:

svc.GetFileLen(filename: str): num

Parametrar:

filename: Ein streng som representerer ei fil som finst frå før.

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 datoen ei gjeve fil sist vart endra.

Syntaks:

svc.GetFileModified(filename: str): datetime

Parametrar:

filename: Ein streng som representerer ei fil som finst frå før.

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 eit fil- eller mappenamn i formatet brukt av operativsystemet.

Metoden kontrollerer ikkje om den spesifiserte fila eller mappa finst frå før.

Syntaks:

svc.GetName(filename: str): str

Parametrar:

filename: Ein streng som representerer filnamnet med stien.

Eksempel:


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

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

GetParentFolderName

Returnerer ein streng som inneheld namnet på den overordna mappa for den gjevne fila eller mappa.

Metoden kontrollerer ikkje om den spesifiserte fila eller mappa finst frå før.

Syntaks:

svc.GetParentFolderName(filename: str): str

Parametrar:

filname: Ein streng med det fil- eller mappenamnet som skal analyserast.

Eksempel:


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

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

GetTempName

Returnerer eit tilfeldig generert mellombels filnamn som kan vera nyttig for å utføra operasjonar som krev ei mellombels fil

Som standard har ikkje det returnerte filnamnet ein filtype. Bruk parameteren extension for å spesifisera utvidinga av filnamnet som skal genererast.

Mappedelen av den returnerte strengen er den mellombelse mappa til systemet.

Metoden lagar ikkje den mellombels fila.

Syntaks:

svc.GetTempName(extension: str): str

Parametrar:

extension: Utvidinga av det mellombelse filnamnet (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-funksjonar vert brukte av nokre kryptografiske algoritmar, i digitale signaturar, meldings-godkjenningskodar, svindeloppdaging, fingeravtrykk, kontrollsummar (kontroll av meldingsintegritet), hash-tabellar, lagring av passord og meir.

Metoden HashFile returnerer resultatet av ein hash-funksjon som er brukt på ei gjeven fil og med ein gjeven algoritme. Den returnerte verdien er ein streng av heksadesimale siffer skrive med små bokstavar.

Dei støtta hash-algoritmene er: MD5, SHA1, SHA224, SHA256, SHA384 og SHA512.

Syntaks:

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

Parametrar:

filename: Ein streng som representerer ei fil som finst frå før.

algoritme: Ein av dei støtta algoritmane.

Eksempel:


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

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

MoveFile

Flyttar éi eller fleire filer frå éin stad til ein annan. Returnerer Sann viss minst éi fil er flytt, eller Usann viss det oppstod ein feil.

Det oppstår ein feil viss parameteren source brukar jokerteikn og det ikkje er samsvar med noko fil.

Metoden stoppar straks når det oppstår ein feil. Metoden rullar ikkje tilbake, og angrar heller ikkje endringar som vart gjort før feilen oppstod.

Syntaks:

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

Parametrar:

source: Kan vera eit FileName eller eit NamePattern som peikar på éi eller fleire mapper som skal flyttast.

destination: Viss source er eit FileName så peikar denne parameteren på den nye stien og filnamnet til den fila som er flytt.

Viss flytteoperasjonen gjeld fleire filer, må destination vera eit mappenamn. Viss mappa ikkje finst, vert ho laga.

Viss source og destination har den same overordna mappa, vil metoden gje nytt namn til source.

Det er ikkje tillate å bruka jokerteikn i destination.

Eksempel:

I eksempla nedanfor vert berre filene flytta, ikkje undermappene.


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

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

MoveFolder

Flyttar éi eller fleire mapper frå éin stad til ein annan. Returnerer Sann viss minst éi mappe er flytt, eller Usann viss det skjedde ein feil.

Det oppstår ein feil viss parameteren source brukar jokerteikn og det ikkje er samsvar med noko mappe.

Metoden stoppar straks når han møter ein feil. Metoden rullar ikkje tilbake, og angrar heller ikkje endringar som vart gjort før feilen oppstod.

Syntaks:

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

Parametrar:

source: Kan vera eit FolderName eller NamePattern som spesifiserer éi eller fleire mapper som skal flyttast.

destination: Viss flyttinga involverer éi enkelt mappe, er destination namnet og stien til den flytte mappa, som ikkje må finnast frå før.

Viss fleire mapper vert flytte, bestemmer destination kvar mappene i source skal flyttast til. Viss destination ikkje finst frå før, vert det laga.

Det er ikkje tillate å bruka jokerteikn i destination.

Eksempel:


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

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

Normalize

Returnerer ein streng som inneheld det normaliserte banenamnet ved å gøyma overflødige skiljeteikn og referansar på høgare nivå.

For eksempel vert stinamna A//B, A/B/, A/./B og A/foo/ ../B normaliserte til A/B.

I Windows vert skråstrekar «/» konverterte til bakoverstrekar «\».

note

Den gjeldande verdien av eigenskapen SF_FileSystem.FileName vert brukt til å bestemma notasjonen til filnamn-argumentet og formatet til den returnerte strengen.


Syntaks:

svc.Normalize(filename: str): str

Parametrar:

filnamn: ein streng som representerer eit gyldig banenamn. Det er ikkje sikkert at fila eller katalogen representert av dette argumentet finst.

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

Opnar ei fil og returnerer objektet TextStream som kan brukast til å lesa frå, skriva til eller leggja til fila.

Merk at metoden ikkje kontrollerer pm den gjevne fila faktisk er ei tekstfil.

Denne metoden returnerer eit Null-objekt (i Basic) eller None (i Python) viss det kjem opp ein feil.

Syntaks:

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

Parametrar:

filename: Identifiserer fila som skal opnast.

iomode: Indikerer input/output modus. Det kan vera éin av dei tre konstantane: svc.ForReading (standard), svc.ForWriting eller svc.ForAppending.

create: Boolsk verdi som indikerer om ei ny fil kan lagast viss det gjevne filename ikkje finst frå før:

encoding: Teiknsettet som skal brukast. Standard = «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

Opnar eit dialogvindauge for å lagra og opna filer.

Viss SAVE-modus er sett og den valde fila finst frå før, vert det vist ei åtvaring.

Syntaks:

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

Parametrar:

defaultfile: Dette argumentet er ein streng som er sett saman av eit mappe- og eit filnamn:

mode: Ein strengverdi som kan vera anten "OPEN" (for inndata-filer) eller "SAVE" (for utdata-filer). Standardverdien er "OPEN".

filter: Namneutvidinga på dei filene som vert viste når dialogvindauget er ope (standard=ikkje filter).

Eksempel:

Eksempla nedanfor opnar ein filveljar med "txt"-filteret slått på.


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

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

PickFolder

Opnar eit dialogfelt for å velja ei mappe.

Syntaks:

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

Parametrar:

defaultfolder: Ein streng som inneheld det mappenamnet som vert vist når dialogvindauget vert opna (standard = sen sist valde mappa).

freetext: Teksten som skal visast i dialogvindauget (standard = "").

Eksempel:


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

      # Python
      aFolder = fs.PickFolder(r"C:\Documents", "Vel ei mappe eller trykk på «Avbryt»")
    

SubFolders

Returnerer ei null-basert matrise av strengar som svarar til dei mappene som er lagra i eit gjeve foldername.

Lista kan vera filtrert med jokerteikn.

Syntaks:

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

Parametrar:

foldername: Ein streng som representerer ei mappe. Mappa må finnast. foldername må ikkje visa til ei fil.

filter: Ein streng som inneheld jokerteikn («?» og «*») som vert brukt i den resulterande lista over mapper (standard = "").

includesubfolders: Set dette argumentet til Sann for å ta med innhaldet i undermappene (standard = Usann).

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-rutinane og -identifikatorane som vert innleidde med understrek «_» er reserverte for internt bruk. Dei er ikkje meint brukte i Basic-makroar.


Støtt oss!