Storitev ScriptForge.FileSystem service

Storitev FileSystem vključuje metode za ravnanje z datotekami in mapami. Sledi nekaj primerov funkcionalnosti, ki jih zagotavlja ta storitev:

note

Metode v storitvi FileSystem so večinoma utemeljene na UNO-vmesniku XSimpleFileAccess.


Definicije

Spodnja tabela izpiše glavne parametre, ki jih uporablja večina metod iz storitve FileSystem.

Parameter

Opis

FileName

Polno ime datoteke, vključno s potjo, a brez ločila poti na koncu.

FolderName

Polno ime mape, vključno s potjo. Vsebuje lahko zaključno ločilo poti (ali pa ne).

Name

Zadnja komponenta Folder Name ali File Name, vključno s končnico. Ta parameter je vedno izražen v domorodnem zapisu operacijskega sistema.

BaseName

Zadnja komponenta Folder Name ali File Name, brez končnice.

NamePattern

Katero koli od zgornjih imen z nadomestnimi znaki v zadnji komponenti. Dovoljen nadomestni znaki so:

  • "?" predstavlja poljuben posamičen znak.

  • "*" predstavlja nič, enega ali več poljubnih znakov.


tip

Storitev FileSystem omogoča izvajanje operacij nad več datotekami hkrati. Z uporabo vzorcev imen lahko z uporabniškimi skripti kopirate, premikate ali izbrišete več datotek. Z vgrajenimi metodami Basic pa lahko obravnavate le posamične datoteke.


Notacija imen datotek

Notacijo, uporabljeno za zapis imen datotek in map tako za argumente kot za vrnjene vrednosti določa lastnost FileNaming storitve FileSystem.

Na kratko: možne vrste reprezentacije so "URL" (datotečna notacija URL), "SYS" (notacija operacijskega sistema) in "ANY" (privzeta vrednost). Glejte tudi spodaj.

tip

Primer notacije URL je file:///C:/Documents/my_file.odt Poskusite uporabljati notacijo URL, kadar je le možno, saj gre za bolj prenosljiv način.


warning

Uporaba bližnjice »~« (tilda), ki je pogosta na operacijskih sistemih na osnovi Linuxa, ni podprta za izražanje poti do mape in imena datoteke. Namesto "~/Documents/moja_datoteka.odt" uporabite polno pot "/home/user/Documents/moja_datoteka.odt".


Priklic storitve

Naslednji odlomek kode prikliče storitev FileSystem. Kot primer je bila uporabljena metoda BuildPath.

V Basicu

      GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
      Dim FSO As Object
      Set FSO = CreateScriptService("FileSystem")
      FSO.BuildPath(...)
    
V Pythonu

      from scriptforge import CreateScriptService
      fs = CreateScriptService("FileSystem")
      fs.BuildPath(...)
    

Dostopanje do navideznega datotečnega sistema dokumenta

Datoteke dokumentov LibreOffice so stisnjene datoteke ZIP, ki vsebujejo datoteke in mape, ki predstavljajo dejansko vsebino dokumenta. Ko je dokument odprt, je mogoče dostopati do tega navideznega datotečnega sistema, raziskovati njegovo strukturo ter brati in ustvarjati datoteke in mape.

Naslednji primer kaže, kako lahko ustvarite besedilno datoteko myFile.txt in jo shranite v okviru navideznega datotečnega sistema dokumenta.

V Basicu

    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)
    ' Pridobi zapis poti URL do korenske mape navideznega datotečnega sistema
    sRoot = oDoc.FileSystem()
    sMyDir = sRoot & "myDir"
    ' Ustvari mapo »myDir«, če še ne obstaja
    If Not fso.FolderExists(sMyDir) Then
        fso.CreateFolder(sMyDir)
    End If
    ' Ustvari datoteko in vanjo zapiše nekaj besedila
    sFile = fso.BuildPath(sMyDir, "myFile.txt")
    oFile = fso.CreateTextFile(sFile)
    oFile.WriteLine("Hello!")
    oFile.CloseFile()
  
V Pythonu

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

Na splošno lahko vse metode storitve FileSystem uporabite za upravljanje datotek v navideznem datotečnem sistemu dokumenta. Vendar veljajo naslednje omejitve:

note

Pot do navideznega datotečnega sistema ni fizični naslov na trdem disku računalnika. Do nje je mogoče dostopati samo znotraj skripta LibreOffice in obstaja samo, dokler je datoteka dokumenta odprta.


Lastnosti

Ime

Samo za branje

Vrsta

Opis

FileNaming

Ne

String

Določi ali vrne trenutno notacijo datotek in map, možne vrednosti so "ANY", "URL" in "SYS":

  • "ANY": (privzeta vrednost) metode storitve FileSystem sprejemajo za vhodne vrednost tako zapis URL kot trenutno notacijo operacijskega sistema, vendar vedno vrnejo nize v zapisu URL.

  • "URL": metode storitve FileSystem pričakujejo za vhodne argumente notacijo URL in vrnejo nize URL.

  • "SYS": metode storitve FileSystem pričakujejo notacijo trenutnega operacijskega sistema tako za vhodne argumente kot za vrnjene nize.

Ko je določena, lastnost FileNaming ostane nespremenjene do konca seje LibreOffice oz. do naslednje določitve.

ConfigFolder

Da

String

Vrne mapo s prilagoditvami LibreOffice.

ExtensionsFolder

Da

String

Vrne mapo, v kateri so nameščene razširitve.

HomeFolder

Da

String

Vrne domačo mapo uporabnika.

InstallFolder

Da

String

Vrne namestitveno mapo LibreOffice.

TemplatesFolder

Da

String

Vrne mapo s sistemskimi datotekami predlog.

TemporaryFolder

Da

String

Vrne mapo začasnih datotek, kot jo določajo nastavitve poti v LibreOffice.

UserTemplatesFolder

Da

String

Vrne mapo, ki vsebuje uporabniško-določene datoteke predlog.


Seznam metod storitve 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

Združi pot mape in ime datoteke in vrne polno ime datoteke z veljavnim ločilom poti. Ločilo poti je dodano po potrebi.

Skladnja:

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

Parametri:

foldername: pot, s katero bo kombinirano ime name. Ni potrebno, da navedena pot predstavlja obstoječo mapo.

name: ime datoteke, ki bo pripeto imenu mape foldername. Ta parameter uporablja notacijo trenutnega operacijskega sistema.

Primer:

V Basicu

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

      fs = CreateScriptService("FileSystem")
      fs.FileNaming = "URL"
      aFileName = fs.BuildPath("file:///home/user", "sample file.odt")
      # file:///home/user/sample%20file.odt
    

CompareFiles

Primerja dve datoteki in vrne True, če se zdita identični.

Glede na vrednost argumenta comparecontents je primerjava med datotekama lahko samo glede na atribute datoteke (kot je datum zadnje spremembe) ali glede na vsebino datoteke.

Skladnja:

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

Parametri:

filename1, filename2: imena datotek za primerjavo.

comparecontents: če je True, bo vsebina datotek primerjana (privzeta vrednost je False).

Primer:

V Basicu

      FSO.FileNaming = "SYS"
      If FSO.CompareFiles("C:\myFile1.txt", "C:\myFile2.txt", CompareContents := False) Then
          ' ...
      End If
    
V Pythonu

      fs.FileNaming = "SYS"
      if fs.CompareFiles(r"C:\myFile1.txt", r"C:\myFile2.txt", comparecontents = False):
          # ...
    

CopyFile

Kopira eno ali več datotek iz enega mesta na drugega. Vrne True, če je kopirana vsaj ena datoteka, ali False, če je prišlo do napake.

Do napake pride tudi, če parameter source uporablja nadomestne znake in se z iskanim vzorcem ne ujema nobena datoteka.

Metoda se ustavi nemudoma, ko naleti na napako. Metoda se ne povrne niti ne razveljavi spremembe, opravljene pred nastopom napake.

Skladnja:

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

Parametri:

source: lahko je filename (ime datoteke) ali namepattern (vzorec imena), ki določa eno ali več datotek, ki jih želite kopirati.

destination: lahko je ime datoteke FileName, ki določa, kam naj bo kopirana posamezna datoteka source, ali ime mape FolderName, v katero bo kopiranih več datotek iz mape source.

overwrite: če je True (privzeta vrednost), je datoteke možno prepisati. Metoda spodleti, če je destination samo za branje, ne glede na vrednost overwrite.

Primer:

V spodnjih primerih prva vrstica kopira posamezno datoteko, medtem ko druga vrstica kopira več datotek z uporabo nadomestnih znakov.

V Basicu

      FSO.CopyFile("C:\Documents\my_file.odt", "C:\Temp\copied_file.odt")
      FSO.CopyFile("C:\Documents\*.*", "C:\Temp\", Overwrite := False)
    
V Pythonu

      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

Pazite, da se ne kopirajo podmape in njihova vsebina, ko uporabite nadomestne znake v argumentu source.


CopyFolder

Kopira eno ali več map z enega mesta na drugo. Vrne True, če je kopirana vsaj ena mapa, oz. False, če nastopi napaka.

Do napake pride tudi, če parameter source uporablja nadomestne znake in se z iskanim vzorcem ne ujema nobena mapa.

Metoda se ustavi nemudoma, ko naleti na napako. Metoda se ne povrne niti ne razveljavi spremembe, opravljene pred nastopom napake.

Skladnja:

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

Parametri:

source: lahko je FolderName (ime mape) ali NamePattern (vzorec imena), ki določa eno ali več map, ki jih želite kopirati.

destination: določa ime mape FolderName. v katero bo kopirana mapa oz. mape, določene z nizom source.

overwrite: če je True (privzeta vrednost), je datoteke možno prepisati. Metoda spodleti, če je destination samo za branje, ne glede na vrednost overwrite.

Primer:

V spodnjih primerih se kopirajo mape, njihove datoteke in njihove podmape.


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

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

CreateFolder

Ustvari navedeno mapo FolderName. Vrne True, če je mapa uspešno ustvarjena.

Če ima navedena mapa nadrejeno mapo, ki ne obstaja, bo tudi ta ustvarjena.

Skladnja:

svc.CreateFolder(foldername: str): bool

Parametri:

foldername: niz, ki predstavlja mapo, ki bo ustvarjena. Če mapa že obstaja, prikliče izjemo.

Primer:


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

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

CreateTextFile

Ustvari navedeno datoteko in vrne instanco storitve TextStream, s katero lahko pišete v datoteko.

Metoda vrne predmet Null, če je prišlo do napake.

Skladnja:

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

Parametri:

filename: ime datoteke, ki naj bo ustvarjena.

overwrite: logična vrednost, ki določa, če je datoteko filename dovoljeno prepisati (privzeta vrednost je True).

encoding: nabor znakov, ki naj bo uporabljen. Privzeto kodiranje je »UTF-8«.

Primer:

V Basicu

      Dim myFile As Object
      FSO.FileNaming = "SYS"
      Set myFile = FSO.CreateTextFile("C:\Temp\ThisFile.txt", Overwrite := True)
    
V Pythonu

      fs.FileNaming = "SYS"
      myFile = fs.CreateTextFile(r"C:\Temp\ThisFile.txt", overwrite = True)
    
note

Če želite izvedeti več o imenih naborov znakov, si oglejte stran Nabori znakov IANA (IANA's Character Set) (v angl.). Upoštevajte, da LibreOffice ne podpira vseh obstoječih naborov znakov.


DeleteFile

Izbriše eno ali več datotek. Vrne True, če je izbrisana vsaj ena datoteka, ali False, če je prišlo do napake.

Do napake pride tudi, če parameter filename uporablja nadomestne znake in se z iskanim vzorcem ne ujema nobena datoteka.

Datoteke, ki jih želite izbrisati, ne smejo biti samo za branje.

Metoda se ustavi nemudoma, ko naleti na napako. Metoda se ne povrne niti ne razveljavi spremembe, opravljene pred nastopom napake.

Skladnja:

svc.DeleteFile(filename: str): bool

Parametri:

filename: lahko je FileName (ime datoteke) ali NamePattern (vzorec imena), ki določa eno ali več datotek, ki jih želite izbrisati.

Primer:

V spodnjih primeri se izbrišejo le datoteke, podmape ne.


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

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

DeleteFolder

Izbriše eno ali več map. Vrne True, če je izbrisana vsaj ena mapa, oz. False, če nastopi napaka.

Do napake pride tudi, če parameter foldername uporablja nadomestne znake in se z iskanim vzorcem ne ujema nobena mapa.

Mape, ki jih želite izbrisati, ne smejo biti samo za branje.

Metoda se ustavi nemudoma, ko naleti na napako. Metoda se ne povrne niti ne razveljavi spremembe, opravljene pred nastopom napake.

Skladnja:

svc.DeleteFolder(foldername: str): bool

Parametri:

foldername: lahko je FolderName (ime mape) ali NamePattern (vzorec imena), ki določa eno ali več map, ki jih želite izbrisati.

Primer:

V spodnjih primerih so izbrisane samo mape, datoteke v vrhnji oz. nadrejeni mapi (»C:\Temp«) pač ne.


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

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

ExtensionFolder

Vrne niz, ki vsebuje mapo, v kateri je nameščen navedeni paket razširitve.

note

Za določitev notacije vrnjenega niza se uporabi trenutna vrednost lastnosti SF_FileSystem.FileNaming.


tip

Uporabite lastnost Extensions v storitvi Platform, da pridobite polje nizov z vrednostmi ID za vse nameščene razširitve.


Skladnja:

svc.ExtensionFolder(extension: str): str

Parametri:

extension: niz, ki predstavlja ID razširitve. Če razširitev ni nameščena, prikliče izjemo.

Primer:

Spodnja primera v Basicu in Pythonu vrneta mapo, kateri je nameščena razširitev APSO.


      ' 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

Vrne True, če je dano ime datoteke veljavno in datoteka obstaja, sicer metoda vrne False.

Če je parameter filename dejansko ime obstoječe mape, metoda vrne False.

Skladnja:

svc.FileExists(filename: str): bool

Parametri:

filename: niz, ki predstavlja datoteko, ki bo preizkušena.

Primer:

V Basicu

      FSO.FileNaming = "SYS"
      If FSO.FileExists("C:\Documents\my_file.odt") Then
          '...
      End If
    
V Pythonu

      fs.FileNaming = "SYS"
      if fs.FileExists(r"C:\Documents\my_file.odt"):
          # ...
    

Files

Vrne ničelno polje map, shranjenih v dani mapi. Vsak vnos v polju je niz, ki vsebuje polno pot in ime datoteke.

Če mapa argumenta foldername ne obstaja, prikliče napako.

Vrnjeni seznam lahko filtrirate z nadomestnimi znaki.

Skladnja:

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

Parametri:

foldername: niz, ki predstavlja mapo. Mapa mora obstajati. Ta argument ne sme opredeljevati datoteke.

filter: niz, ki vsebuje nadomestne znake ("?" in "*"), ki bodo uporabljeni na vrnjenem seznamu datotek (privzeto je enak »«).

includesubfolders: ta argument nastavite na True, da vključite vsebino podmap (privzeta vrednost je False).

Primer:

V Basicu

      Dim filesList As Variant, file As String
      FSO.FileNaming = "SYS"
      ' Vrne vse datoteke, ki se ujemajo s filtrom "*.txt", vključno z datotekami iz podmap
      filesList = FSO.Files("/home/user/", "*.txt", IncludeSubfolders := True)
      For Each file In filesList
          ' ...
      Next file
    
V Pythonu

      fs.FileNaming = "SYS"
      filesList = fs.Files("/home/user/", "*.txt", includesubfolders = True)
      for file in fileList:
          # ...
    

FolderExists

Vrne True, če je dano ime mape FolderName veljavno in mapa obstaja, sicer metoda vrne False.

Če je parameter foldername dejansko ime obstoječe datoteke, metoda vrne False.

Skladnja:

svc.FolderExists(foldername: str): bool

Parametri:

foldername: niz, ki predstavlja mapo, ki bo preizkušena.

Primer:

V Basicu

      FSO.FileNaming = "SYS"
      If FSO.FolderExists("C:\Documents\Thesis") Then
          '...
      End If
    
V Pythonu

      fs.FileNaming = "SYS"
      if fs.FolderExists(r"C:\Documents\Thesis")
          # ...
    

GetBaseName

Vrne osnovo BaseName (enako zadnji komponenti) imena mape ali datoteke, brez končnice.

Metoda ne preverja, če podana datoteka ali mapa obstaja.

Skladnja:

svc.GetBaseName(filename: str): str

Parametri:

filename: niz, ki predstavlja ime datoteke in njeno pot.

Primer:

V spodnjih primerih se prvi klic metode GetBaseName nanaša na mapo, zato funkcija vrne zadnjo komponento poti. Drugi klic prejme na vhod ime datoteke, zato vrne ime datoteke brez njegove končnice.

V Basicu

      MsgBox FSO.GetBaseName("/home/user/Documents") ' "Documents"
      MsgBox FSO.GetBaseName("/home/user/Documents/my_file.ods") ' "my_file"
    
V Pythonu

      bas = CreateScriptService("Basic")
      bas.MsgBox(fs.GetBaseName("/home/user/Documents")) # "Documents"
      bas.MsgBox(fs.GetBaseName("/home/user/Documents/my_file.ods")) # "my_file"
    

GetExtension

Vrne končnico datoteke ali imena mape, brez znaka za piko (".").

Metoda ne preverja obstoja navedene datoteke ali mape.

Če to metodo uporabite za ime mape ali datoteke brez končnice, vrne prazen niz.

Skladnja:

svc.GetExtension(filename: str): str

Parametri:

filename: niz, ki predstavlja ime datoteke in njeno pot.

Primer:


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

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

GetFileLen

Vgrajena funkcija Basica FileLen vrne število bajtov, vsebovanih v datoteki kot vrednost Long, t.j. do 2 GB.

Metoda GetFileLen lahko ravna z veliko večjimi datotekami, saj vrne vrednost Currency.

Skladnja:

svc.GetFileLen(filename: str): num

Parametri:

filename: niz, ki predstavlja obstoječo datoteko.

Primer:

V Basicu

      Dim fLen As Currency
      FSO.FileNaming = "SYS"
      fLen = FSO.GetFileLen("C:\pagefile.sys")
    
V Pythonu

      fs.FileNaming = "SYS"
      fLen = fs.GetFileLen(r"C:\pagefile.sys")
    

GetFileModified

Vrne datum zadnje spremembe dane datoteke.

Skladnja:

svc.GetFileModified(filename: str): datetime

Parametri:

filename: niz, ki predstavlja obstoječo datoteko.

Primer:

V Basicu

      Dim aDate As Date
      FSO.FileNaming = "SYS"
      aDate = FSO.GetFileModified("C:\Documents\my_file.odt")
    
V Pythonu

      fs.FileNaming = "SYS"
      aDate = FSO.GetFileModified(r"C:\Documents\my_file.odt")
    

GetName

Vrne zadnjo komponento imena datoteke ali mape v domorodnem zapisu operacijskega sistema.

Metoda ne preverja, če podana datoteka ali mapa obstaja.

Skladnja:

svc.GetName(filename: str): str

Parametri:

filename: niz, ki predstavlja ime datoteke in njeno pot.

Primer:


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

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

GetParentFolderName

Vrne niz, ki vsebuje ime nadrejene mape z imenom navedene datoteke ali mape.

Metoda ne preverja, če podana datoteka ali mapa obstaja.

Skladnja:

svc.GetParentFolderName(filename: str): str

Parametri:

filename: niz z imenom datoteke ali mape, ki bo analizirana.

Primer:


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

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

GetTempName

Vrne naključno izdelano ime začasne mape, ki je uporabno za izvajanje operacij, ki zahtevajo začasno mapo.

Privzeto ime vrnjene datoteke nima končnice. S parametrom extension določite končnico imena datoteke, ki se ustvari.

Del vrnjenega niza za mapo je začasna sistemska mapa.

Metode ne ustvari začasne datoteke.

Skladnja:

svc.GetTempName(extension: str): str

Parametri:

extension: končnica imena začasne datoteke (privzeta vrednost je "").

Primer:

V Basicu

      Dim fName As String
      FSO.FileNaming = "SYS"
      fName = FSO.GetTempName(Extension := "txt")
      ' "/tmp/SF_574068.txt"
    
V Pythonu

      fs.FileNaming = "SYS"
      fName = FSO.GetTempName(extension = "txt")
      # "/tmp/SF_574068.txt"
    

HashFile

Zgoščevalne funkcije se uporabljajo v kriptografskih algoritmih, za digitalne podpise, overitvene kode sporočil, zaznavanje prevar, prstne odtise, kontrolne vsote (preverjanje integritete sporočil), tabele zgoščenih vrednosti, hrambo gesel in še mnogo drugega.

Metoda HashFile vrne rezultat zgoščevalne funkcije, izvedene na podani datoteki z uporabo navedenega algoritma. Vrnjena vrednost je niz s šestnajstiškimi števkami, zapisanimi z malimi črkami.

Podprti algoritmi zgoščevalne funkcije so: MD5, SHA1, SHA224, SHA256, SHA384 in SHA512.

Skladnja:

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

Parametri:

filename: niz, ki predstavlja obstoječo datoteko.

algorithm: eden od podprtih algoritmov.

Primer:


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

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

MoveFile

Premakne eno ali več datotek z enega mesta na drugega. Vrne True, če je premaknjena vsaj ena datoteka, ali False, če do napake ni prišlo.

Do napake pride tudi, če parameter source uporablja nadomestne znake in se z iskanim vzorcem ne ujema nobena datoteka.

Metoda se ustavi nemudoma, ko naleti na napako. Metoda se ne povrne niti ne razveljavi spremembe, opravljene pred nastopom napake.

Skladnja:

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

Parametri:

source: lahko je FileName (ime datoteke) ali NamePattern (vzorec imena), ki določa eno ali več datotek, ki jih želite premakniti.

destination: če je source ime datoteke (FileName), potem ta parameter nakazuje novo pot in ime datoteke premaknjene datoteke.

Če operacija premika vključuje več datotek, potem mora biti destination ime mape. Če še ne obstaja, se ustvari.

Če imata source in destination isto nadrejeno mapo, bo metoda preimenovala source.

Nadomestni znaki niso dovoljeni v destination.

Primer:

V naslednjih primerih se premaknejo le datoteke, podmape ne.


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

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

MoveFolder

Premakne eno ali več map z enega mesta na drugo. Vrne True, če je premaknjena vsaj ena mapa, oz. False, če nastopi napaka.

Do napake pride tudi, če parameter source uporablja nadomestne znake in se z iskanim vzorcem ne ujema nobena mapa.

Metoda se ustavi nemudoma, ko naleti na napako. Metoda se ne povrne niti ne razveljavi spremembe, opravljene pred nastopom napake.

Skladnja:

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

Parametri:

source: lahko je FolderName (ime mape) ali NamePattern (vzorec imena), ki določa eno ali več map, ki jih želite premakniti.

destination: Če operacija premika vključuje eno samo mapo, potem je destination ime in pot premaknjene mape in še ne sme obstajati.

Če premikate več map, destination določa, kam bodo mape v source premaknjene. Če destination ne obstaja, bo ustvarjena.

Nadomestni znaki niso dovoljeni v destination.

Primer:


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

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

Normalize

Vrne niz, ki vsebuje normalizirano ime poti s strnjenimi nepotrebnimi ločili in sklici na vrhnjo raven.

Primer: imena poti A//B, A/B/, A/./B in A/foo/../B so vsa normalizirana v A/B.

Na sistemih Windows se poševnice »/« pretvorijo v leve poševnice »\«.

note

Za določitev notacije argumenta filename in vrnjenega niza se uporabi trenutna vrednost lastnosti SF_FileSystem.FileNaming.


Skladnja:

svc.Normalize(filename: str): str

Parametri:

filename: niz, ki predstavlja veljavno ime poti. Datoteka ali mapa, predstavljena s tem argumentom, lahko tudi ne obstaja.

Primer:

V Basicu

    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/../")
  
V Pythonu

    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

Odpre datoteko in vrne predmet TextStream, ki ga lahko uporabite za ranje, zapisovanje ali dopisovanje v datoteko.

Upoštevajte, da metoda ne preverja, če je podana datoteka besedilna datoteka.

Metoda vrne predmet Null (v Basicu) oz. None (v Pythonu), če je prišlo do napake.

Skladnja:

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

Parametri:

filename: ime datoteke, ki jo želite odpreti.

iomode: vhodno/izhodni način. Lahko je ena od treh konstant: svc.ForReading (privzeto, branje), svc.ForWriting (pisanje) ali svc.ForAppending (dodajanje).

create: logična vrednost, ki določa, če naj bo ustvarjena nova datoteka, če datoteka z navedenim imenom filename ne obstaja.

encoding: nabor znakov, ki naj bo uporabljen. Privzeto kodiranje je »UTF-8«.

Primer:

V Basicu

      Dim myFile As Object
      FSO.FileNaming = "SYS"
      Set myFile = FSO.OpenTextFile("C:\Temp\ThisFile.txt", FSO.ForReading)
      If Not IsNull(myFile) Then
          ' ...
      End If
    
V Pythonu

      fs.FileNaming = "SYS"
      myFile = fs.OpenTextFile(r"C:\Temp\ThisFile.txt", fs.ForReading)
      if myFile is not None:
          # ...
    

PickFile

Odpre pogovorno okno za odpiranje oz. shranjevanje datotek.

Če je nastavljen način SAVE in izbrana datoteka obstaja, se prikaže opozorilno sporočilo.

Skladnja:

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

Parametri:

defaultfile: ta argument je niz, sestavljen iz imena mape in imena datoteke:

mode: niz, ki je lahko "OPEN" (vhodna datoteka) ali "SAVE" (izhodna datoteka). Privzeta vrednost je "OPEN".

filter: končnica prikazanih datotek, ko se odpre pogovorno okno (privzeto = brez filtra).

Primer:

Spodnji primeri odprejo izbirnik datotek z uporabljenim filtrom »txt«.


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

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

PickFolder

Odpre pogovorno okno za izbor mape.

Skladnja:

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

Parametri:

defaultfolder: niz vsebuje ime mape, ki bo prikazana, ko se odpre pogovorno okno (privzeto = nazadnje izbrana mapa).

freetext: besedilo, ki bo prikazano v pogovornem oknu (privzeto = "").

Primer:


      ' Basic
      aFolder = FSO.PickFolder("C:\Documents", "Izberite mapo ali pritisnite Prekliči")
    

      # Python
      aFolder = fs.PickFolder(r"C:\Documents", "Izberite mapo ali pritisnite Prekliči")
    

SubFolders

Vrne ničelno polje nizov, ki predstavljajo mape, shranjenih v dani mapi foldername.

Seznam lahko filtrirate z nadomestnimi znaki.

Skladnja:

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

Parametri:

foldername: niz, ki predstavlja mapo. Mapa mora obstajati. foldername ne sme opredeljevati datoteke.

filter: niz, ki vsebuje nadomestne znake ("?" in "*"), ki bodo uporabljeni za seznam map kot rezultatu (privzeto = "").

includesubfolders: ta argument nastavite na True, da vključite vsebino podmap (privzeta vrednost je False).

Primer:

V Basicu

      Dim folderList As Variant, folder As String
      FSO.FileNaming = "SYS"
      folderList = FSO.SubFolders("/home/user/")
      For Each folder In folderList
          ' ...
      Next folder
    
V Pythonu

      fs.FileNaming = "SYS"
      folderList = fs.SubFolders("/home/user/")
      for folder in folderList:
          # ...
    
warning

Vsi podprogrami ali identifikatorji ScriptForge Basic s predpono podčrtaja (»_«) so rezervirani za interno uporabo. Uporabi v makrih Basic ali skriptih Python niso namenjeni.


Podprite nas!