Nápověda LibreOffice 25.2
Služba FileSystem obsahuje procedury pro manipulaci se soubory a složkami. Příklady funkcí poskytovaných touto službou jsou:
Ověření, zda soubor či složka existuje.
Vytváření a mazání složek a souborů.
Spouštění dialogových oken pro otevírání a ukládání souborů.
Přístup k seznamu souborů ve složce apod.
Metody služby FileSystem jsou založeny převážně na rozhraní UNO XSimpleFileAccess.
Následující tabulka uvádí hlavní parametry používané většinou metod služby FileSystem.
| Parametr | Popis | 
|---|---|
| FileName | Úplný název souboru včetně cesty bez oddělovače cesty na konci. | 
| FolderName | Úplný název složky včetně cesty. Na konci může volitelně obsahovat oddělovač cesty. | 
| Name | Poslední část parametru Folder Name nebo File Name včetně přípony. Tento parametr je vždy zapsán v nativním formátu operačního systému. | 
| BaseName | Poslední část parametru Folder Name nebo File Name bez přípony. | 
| NamePattern | Jakýkoliv z výše uvedených názvu obsahující v poslední části zástupné znaky, kterými jsou: 
 | 
Služba FileSystem umožňuje provádět operace na více souborech najednou. Pomocí vzorků pro názvy může uživatel více souboru kopírovat, přesouvat nebo mazat. Naproti tomu vestavěné metody Basicu mohou pracovat pouze s jednotlivými soubory.
Zápis použitý pro názvy souborů a složek, a to jak pro argument, tak návratové hodnoty, je definován vlastností FileNaming služby FileSystem.
Název lze reprezentovat typem "URL" (zápis URL), "SYS" (zápis operačního systému) nebo "ANY" (výchozí). Další informace následují níže.
Příkladem zápisu URL je file:///C:/Documents/my_file.odt. Zvažte použití tohoto zápisu, kdykoliv je to možné, jedná se totiž o nejpřenositelnější možnost.
Zkratka "~" (vlnovka), často používaná v linuxových operačních systémech, není v zápise cesty k složce a názvu souboru podporována. Místo zápisu "~/Documents/my_file.odt" použijte úplnou cestu "/home/user/Documents/my_file.odt".
V následující části kódu se vytvoří instance služby FileSystem. Jako příklad se zavolá metoda BuildPath.
      GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
      Dim FSO As Object
      Set FSO = CreateScriptService("FileSystem")
      FSO.BuildPath(...)
    
      from scriptforge import CreateScriptService
      fs = CreateScriptService("FileSystem")
      fs.BuildPath(...)
    Soubory s dokumenty LibreOffice jsou komprimovanými soubory formátu ZIP, které obsahují soubory a složky představující vlastní obsah dokumentu. Během doby, kdy je dokument otevřený, je možné k tomuto virtuálnímu systému souborů přistupovat, prohlížet jeho strukturu a načítat a vytvářet jeho soubory a složky.
Následující příklad ukazuje, jak vytvořit textový soubor pojmenovaný myFile.txt a uložit jej do virtuálního systému souborů pro dokument.
    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)
    ' Získá URL cesty ke kořeni virtuálního systému souborů
    sRoot = oDoc.FileSystem()
    sMyDir = sRoot & "myDir"
    ' Vytvoří složku "myDir", pokud ještě neexistuje
    If Not fso.FolderExists(sMyDir) Then
        fso.CreateFolder(sMyDir)
    End If
    ' Vytvoří soubor a zapíše do něj text
    sFile = fso.BuildPath(sMyDir, "myFile.txt")
    oFile = fso.CreateTextFile(sFile)
    oFile.WriteLine("Hello!")
    oFile.CloseFile()
  
    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()
  Obecně platí, že k práci se soubory z virtuálního systému souborů pro dokument lze používat metody služby FileSystem. Spojena s tím však jsou následující omezení:
Není možné vytvářet soubory v kořenové složce. Pro ukládání souborů v systému souborů pro dokument použijte existující podsložky nebo vytvořte složky nové.
Za zápis FileNaming je vždy považována možnost "URL".
Nelze použít metody CompareFiles, GetFileModified, HashFile, PickFile a PickFolder.
Metoda GetFileLen vrátí vždy nulu.
Metoda Normalize vrátí vždy nezměněný vstupní řetězec.
Cesta k virtuálnímu systému souborů není fyzickou adresou na pevném disku počítače. Je možné k ní přistupovat pouze ze skriptů LibreOffice a existuje pouze tehdy, je-li dokument otevřený.
| Název | Pouze pro čtení | Typ | Popis | 
|---|---|---|---|
| FileNaming | ne | String | Nastaví nebo vrátí aktuální zápis pro soubory a složky jako jednu z možností "ANY", "URL" a "SYS": 
 Jakmile je nastavena, zůstává vlastnost FileNaming nezměněna buď do svého opětovného nastavení, nebo do ukončení relace LibreOffice. | 
| ConfigFolder | ano | String | Vrátí konfigurační složku LibreOffice. | 
| ExtensionsFolder | ano | String | Vrátí složku s nainstalovanými rozšířeními. | 
| HomeFolder | ano | String | Vrátí domovskou složku uživatele. | 
| InstallFolder | ano | String | Vrátí instalační složku LibreOffice. | 
| TemplatesFolder | ano | String | Vrátí složku obsahující soubory s nainstalovanými šablonami. | 
| TemporaryFolder | ano | String | Vrátí složku s dočasnými soubory určenou v nastavení cest pro LibreOffice. | 
| UserTemplatesFolder | ano | String | Vrátí složku obsahující soubory s uživatelem definovanými šablonami. | 
Spojí název složky s názvem souboru a vrátí úplný název s platným oddělovačem cesty, který se přidá jen tehdy, je-li to nutné.
svc.BuildPath(foldername: str, name: str): str
foldername: Cesta, s níž se zkombinuje argument name. Určená cesta nemusí odpovídat existující složce.
name: Název souboru, který se má připojit k argumentu foldername. Tento parametr používá zápis aktuálního operačního systému.
      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
    
      fs = CreateScriptService("FileSystem")
      fs.FileNaming = "URL"
      aFileName = fs.BuildPath("file:///home/user", "sample file.odt")
      # file:///home/user/sample%20file.odt
    Porovná dva soubory a vrátí True, pokud se zdají být totožné.
V závislosti na hodnotě argumentu comparecontents je k porovnání souborů použity buď pouze jejich atributy (například datum poslední změny), nebo obsah souboru.
svc.CompareFiles(filename1: str, filename2: str, comparecontents: bool = False): bool
filename1, filename2: Soubory, které se mají porovnat.
comparecontents: Je-li True, porovná se obsah souborů (výchozí = False).
      FSO.FileNaming = "SYS"
      If FSO.CompareFiles("C:\myFile1.txt", "C:\myFile2.txt", CompareContents := False) Then
          ' ...
      End If
    
      fs.FileNaming = "SYS"
      if fs.CompareFiles(r"C:\myFile1.txt", r"C:\myFile2.txt", comparecontents = False):
          # ...
    Zkopíruje jeden či více souborů z jednoho umístění na jiné. Vrátí True, pokud byl zkopírován alespoň jeden soubor, nebo False, nastane-li chyba.
K chybě dojde i tehdy, jestliže parametr source používá zástupné znaky, které neodpovídají žádnému souboru.
Při výskytu chyby se metoda okamžitě ukončí. Přitom však nevrátí zpět žádné změny, které do té doby provede.
svc.CopyFile(source: str, destination: str, overwrite: bool = True): bool
source: Jeden či více souborů, které se mají zkopírovat, zadané jako FileName nebo NamePattern.
destination: Může být FileName určující, kam se má zkopírovat jediný soubor source, nebo FolderName udávající, kam se má zkopírovat více souborů source.
Jestliže destination neexistuje, vytvoří se.
V argumentu destination nejsou povoleny zástupné znaky.
overwrite: Je-li True (výchozí), soubory mohou být přepsány. Pokud je složka destination pouze pro čtení, metoda selže bez ohledu na hodnotu tohoto parametru.
V níže uvedených příkladech se na prvním řádku zkopíruje jediný soubor, na druhém pomocí zástupných znaků více souborů.
      FSO.CopyFile("C:\Documents\my_file.odt", "C:\Temp\copied_file.odt")
      FSO.CopyFile("C:\Documents\*.*", "C:\Temp\", Overwrite := False)
    
      fs.CopyFile(r"C:\Documents\my_file.odt", r"C:\Temp\copied_file.odt")
      fs.CopyFile(r"C:\Documents\*.*", r"C:\Temp", overwrite = False)
    Mějte na paměti, že při použití zástupných znaků v argumentu source se nezkopírují podsložky a jejich obsah.
Zkopíruje jednu či více složek z jednoho umístění na jiné. Vrátí True, pokud byla zkopírována alespoň jeden složka, nebo False, nastane-li chyba.
K chybě dojde i tehdy, jestliže parametr source používá zástupné znaky, které neodpovídají žádné složce.
Při výskytu chyby se metoda okamžitě ukončí. Přitom však nevrátí zpět žádné změny, které do té doby provede.
svc.CopyFolder(source: str, destination: str, overwrite: bool = True): bool
source: Jedna či více složek, které se mají zkopírovat, zadané jako FolderName nebo NamePattern.
destination: Určuje jako FolderName složku, do níž se má jedna či více složek definovaná argumentem source zkopírovat.
Jestliže destination neexistuje, vytvoří se.
V argumentu destination nejsou povoleny zástupné znaky.
overwrite: Je-li True (výchozí), soubory mohou být přepsány. Pokud je složka destination pouze pro čtení, metoda selže bez ohledu na hodnotu tohoto parametru.
V níže uvedených příkladech se zkopírují všechny soubory, složky a podsložky.
      ' Basic
      FSO.CopyFolder("C:\Documents\*", "C:\Temp\", Overwrite := False)
    
      # Python
      fs.CopyFolder(r"C:\Documents\*", r"C:\Temp", overwrite = False)
    Vytvoří složku zadanou jako FolderName. V případě úspěšného vytvoření vrátí True.
Pokud pro zadanou složku neexistuje rodičovská složka, vytvoří se.
svc.CreateFolder(foldername: str): bool
foldername: Řetězec představující složku, která se má vytvořit. Pokud již složka existuje, nastane výjimka.
      ' Basic
      FSO.CreateFolder("C:\NewFolder")
    
      # Python
      fs.CreateFolder(r"C:\NewFolder")
    Vytvoří zadaný soubor a vrátí instanci služby TextStream, kterou lze použít k zápisu do tohoto souboru.
Nastane-li chyba, metoda vrátí objekt Null.
svc.CreateTextFile(filename: str, overwrite: bool = True, encoding: str = 'UTF-8'): svc
filename: Název souboru, který se má vytvořit.
overwrite: Booleovská hodnota určující, zda je možné soubor filename přepsat (výchozí = True).
encoding: Znaková sada, která se má použít. Výchozím kódováním je "UTF-8".
      Dim myFile As Object
      FSO.FileNaming = "SYS"
      Set myFile = FSO.CreateTextFile("C:\Temp\ThisFile.txt", Overwrite := True)
    
      fs.FileNaming = "SYS"
      myFile = fs.CreateTextFile(r"C:\Temp\ThisFile.txt", overwrite = True)
    Podrobnosti o názvech znakových sad naleznete na stránce znakových sad IANA. Mějte na paměti, že v LibreOffice nemusí být všechny znakové sady implementovány.
Smaže jeden či více souborů. Vrátí True, pokud byl smazán alespoň jeden soubor, nebo False, nastane-li chyba.
K chybě dojde i tehdy, jestliže parametr filename používá zástupné znaky, které neodpovídají žádnému souboru.
Soubory, které se mají smazat, nesmí být pouze pro čtení.
Při výskytu chyby se metoda okamžitě ukončí. Přitom však nevrátí zpět žádné změny, které do té doby provede.
svc.DeleteFile(filename: str): bool
filename: Jeden či více souborů, které se mají smazat, zadané jako FileName nebo NamePattern.
V níže uvedených příkladech se smažou pouze soubory, podsložky smazány nejsou.
      ' Basic
      FSO.DeleteFile("C:\Temp\*.docx")
    
      # Python
      fs.DeleteFile(r"C:\Temp\*.docx")
    Smaže jednu či více složek. Vrátí True, pokud byla smazána alespoň jedna složka nebo False, nastane-li chyba.
K chybě dojde i tehdy, jestliže parametr foldername používá zástupné znaky, které neodpovídají žádné složce.
Složky, které se mají smazat, nesmí být pouze pro čtení.
Při výskytu chyby se metoda okamžitě ukončí. Přitom však nevrátí zpět žádné změny, které do té doby provede.
svc.DeleteFolder(foldername: str): bool
foldername: Jedna či více složek, které se mají smazat, zadané jako FolderName nebo NamePattern.
V níže uvedených příkladech se smažou pouze složky a jejich obsah. Soubory v rodičovské složce "C:\Temp" smazány nejsou.
      ' Basic
      FSO.DeleteFolder("C:\Temp\*")
    
      # Python
      fs.DeleteFolder(r"C:\Temp\*")
    Vrátí řetězec obsahující složku, v níž je nainstalován zadaný balík s rozšířením.
U vráceného řetězce je použit zápis podle aktuální hodnoty vlastnosti SF_FileSystem.FileNaming.
Pole řetězců s identifikátory všech nainstalovaných rozšíření získáte pomocí vlastnosti Extensions ze služby Platform.
svc.ExtensionFolder(extension: str): str
extension: Řetězec s identifikátorem rozšíření. Není-li takové rozšíření nainstalováno, nastane výjimka.
V níže uvedených příkladech v Basicu a Pythonu se vrátí složka, v níž je nainstalováno rozšíření 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")
    Vrátí True, pokud je zadaný název souboru platný a soubor existuje. V opačném případě metoda vrátí False.
Jestliže je parametr filename názvem existující složky, metoda vrátí False.
svc.FileExists(filename: str): bool
filename: Řetězec představující soubor, který se má otestovat.
      FSO.FileNaming = "SYS"
      If FSO.FileExists("C:\Documents\my_file.odt") Then
          '...
      End If
    
      fs.FileNaming = "SYS"
      if fs.FileExists(r"C:\Documents\my_file.odt"):
          # ...
    Vrátí pole začínající od 0 se soubory uloženými v zadané složce. Položkami pole jsou řetězce obsahující úplnou cestu a název souboru.
Pokud argument foldername určuje složku, která neexistuje, je vyvolána výjimka.
Výsledný seznam může být filtrován pomocí zástupných znaků.
svc.Files(foldername: str, filter: str = '', includesubfolders: bool = False): str[0..*]
foldername: Řetězec představující složku, která musí existovat. Tento argument nesmí označovat soubor.
filter: Řetězec obsahující zástupné znaky ("?" nebo "*"), které se použijí na výsledný seznam souborů (výchozí = "").
includesubfolders: Nastavením tohoto argumentu na True zahrnete obsah podsložek (výchozí = False).
      Dim filesList As Variant, file As String
      FSO.FileNaming = "SYS"
      ' Vrátí všechny soubory odpovídající filtru "*.txt" včetně souborů v podsložkách
      filesList = FSO.Files("/home/user/", "*.txt", IncludeSubfolders := True)
      For Each file In filesList
          ' ...
      Next file
    
      fs.FileNaming = "SYS"
      filesList = fs.Files("/home/user/", "*.txt", includesubfolders = True)
      for file in fileList:
          # ...
    Vrátí True, pokud je zadaný název složky FolderName platný a složka existuje. V opačném případě metoda vrátí False.
Jestliže je parametr foldername názvem existujícího souboru, metoda vrátí False.
svc.FolderExists(foldername: str): bool
foldername: Řetězec představující složku, která se má otestovat.
      FSO.FileNaming = "SYS"
      If FSO.FolderExists("C:\Documents\Thesis") Then
          '...
      End If
    
      fs.FileNaming = "SYS"
      if fs.FolderExists(r"C:\Documents\Thesis")
          # ...
    Vrátí BaseName (poslední část) názvu složky nebo souboru bez přípony.
Metoda nekontroluje, zda zadaný soubor či složka existuje.
svc.GetBaseName(filename: str): str
filename: Řetězec představující název souboru včetně cesty.
V níže uvedených příkladech odpovídá první volání metody GetBaseName složce, funkce proto vrátí poslední část cesty. Vstupem do druhého volání je název souboru, vrátí se tudíž název soubory bez přípony.
      MsgBox FSO.GetBaseName("/home/user/Documents") ' "Documents"
      MsgBox FSO.GetBaseName("/home/user/Documents/my_file.ods") ' "my_file"
    
      bas = CreateScriptService("Basic")
      bas.MsgBox(fs.GetBaseName("/home/user/Documents")) # "Documents"
      bas.MsgBox(fs.GetBaseName("/home/user/Documents/my_file.ods")) # "my_file"
    Vrátí z názvu souboru nebo složky část s příponou bez znaku tečky ".".
Metoda nekontroluje, zda zadaný soubor nebo složka existuje.
Použije-li se tato metoda na název složky nebo název souboru bez přípony, vrátí se prázdný řetězec.
svc.GetExtension(filename: str): str
filename: Řetězec představující název souboru včetně cesty.
      ' Basic
      ext = FSO.GetExtension("C:\Windows\Notepad.exe")  ' "exe"
    
      # Python
      ext = fs.GetExtension(r"C:\Windows\Notepad.exe")  # "exe"
    Vestavěná funkce Basicu FileLen vrátí počet bajtů pro obsah souboru jako hodnotu typu Long, tj. maximálně 2 GB.
Metodou GetFileLen lze zpracovat značně větší soubory díky tomu, že se vrátí hodnoty typu Currency.
svc.GetFileLen(filename: str): num
filename: Řetězec představující existující soubor.
      Dim fLen As Currency
      FSO.FileNaming = "SYS"
      fLen = FSO.GetFileLen("C:\pagefile.sys")
    
      fs.FileNaming = "SYS"
      fLen = fs.GetFileLen(r"C:\pagefile.sys")
    Vrátí pro zadaný soubor datum poslední změny.
svc.GetFileModified(filename: str): datetime
filename: Řetězec představující existující soubor.
      Dim aDate As Date
      FSO.FileNaming = "SYS"
      aDate = FSO.GetFileModified("C:\Documents\my_file.odt")
    
      fs.FileNaming = "SYS"
      aDate = FSO.GetFileModified(r"C:\Documents\my_file.odt")
    Vrátí poslední část názvu souboru či složky v nativním formátu operačního systému.
Metoda nekontroluje, zda zadaný soubor či složka existuje.
svc.GetName(filename: str): str
filename: Řetězec představující název souboru včetně cesty.
      ' Basic
      a = FSO.GetName("C:\Windows\Notepad.exe")  ' Notepad.exe
    
      # Python
      a = fs.GetName(r"C:\Windows\Notepad.exe")  # Notepad.exe
    Vrátí řetězec představující název rodičovské složky zadaného souboru nebo název složky.
Metoda nekontroluje, zda zadaný soubor či složka existuje.
svc.GetParentFolderName(filename: str): str
filename: Řetězec s názvem analyzovaného souboru nebo složky.
      ' Basic
      a = FSO.GetParentFolderName("C:\Windows\Notepad.exe")  ' C:\Windows\
    
      # Python
      a = fs.GetParentFolderName(r"C:\Windows\Notepad.exe")  # C:\Windows\
    Vrátí náhodně generovaný název souboru, použitelný pro operace, které vyžadují dočasný soubor.
Ve výchozím nastavení vrácený název souboru neobsahuje příponu. Tu pro soubor, který se má vygenerovat, určíte parametrem extension.
Složka vráceného řetězce odpovídá systémové složce s dočasnými soubory.
Metoda dočasný soubor nevytvoří.
svc.GetTempName(extension: str): str
extension: Přípona názvu dočasného souboru (výchozí = "").
      Dim fName As String
      FSO.FileNaming = "SYS"
      fName = FSO.GetTempName(Extension := "txt")
      ' "/tmp/SF_574068.txt"
    
      fs.FileNaming = "SYS"
      fName = FSO.GetTempName(extension = "txt")
      # "/tmp/SF_574068.txt"
    Hashovací funkce se používají u některých kryptografických algoritmů, elektronických podpisů, autentizačních kódů, detekování podvodů, otisků (fingerprints), kontrolních součtů (kontrolách integrity zpráv), hashovacích tabulek, ukládání hesel apod.
Metoda HashFile vrátí výsledek hashovací funkce použité s daným algoritmem na zadaný soubor. Návratovou hodnotou je řetězec složený z malých šestnáctkových číslic.
Podporovanými hashovacími algoritmy jsou: MD5, SHA1, SHA224, SHA256, SHA384 a SHA512.
svc.HashFile(filename: str, algorithm: str): str
filename: Řetězec představující existující soubor.
algorithm: Některý z podporovaných algoritmů.
      ' Basic
      sHash = FSO.HashFile("C:\pagefile.sys", "MD5")
    
      # Python
      sHash = FSO.HashFile(r"C:\pagefile.sys", "MD5")
    Přesune jeden či více souborů z jednoho umístění na jiné. Vrátí True, pokud byl přesunut alespoň jeden soubor, nebo False, nastane-li chyba.
K chybě dojde i tehdy, jestliže parametr source používá zástupné znaky, které neodpovídají žádnému souboru.
Při výskytu chyby se metoda okamžitě ukončí. Přitom však nevrátí zpět žádné změny, které do té doby provede.
svc.MoveFile(source: str, destination: str): bool
source: Jeden či více souborů, které se mají přesunout, zadané jako FileName nebo NamePattern.
destination: Pokud je argument source zadán jako FileName, potom značí novou cestu a název přesunutého souboru.
Pokud se má přesunout více souborů, musí být argument destination názvem složky. Jestliže tato složka neexistuje, vytvoří se.
Mají-li source a destination stejnou rodičovskou složku, metoda soubor argument source přejmenuje.
V argumentu destination nejsou povoleny zástupné znaky.
V následujících příkladech jsou přesunuty pouze soubory, nikoliv složky.
      ' Basic
      FSO.MoveFile("C:\Temp1\*.*", "C:\Temp2")
    
      # Python
      fs.MoveFile(r"C:\Temp1\*.*", r"C:\Temp2")
    Přesune jednu či více složek z jednoho umístění na jiné. Vrátí True, pokud byla přesunuta alespoň jedna složka, nebo False, nastane-li chyba.
K chybě dojde i tehdy, jestliže parametr source používá zástupné znaky, které neodpovídají žádné složce.
Při výskytu chyby se metoda okamžitě ukončí. Přitom však nevrátí zpět žádné změny, které do té doby provede.
svc.MoveFolder(source: str, destination: str): bool
source: Jedna či více složek, které se mají přesunout, zadané jako FolderName nebo NamePattern.
destination: Pokud se má přesunout jediná složka, je argument destination názvem a cestou přesunuté složky. Tato složka nesmí existovat.
Má-li se přesunout více složek, značí argument destination umístění, na nějž se složky z argumentu source přesunou. Pokud složka destination neexistuje, vytvoří se.
V argumentu destination nejsou povoleny zástupné znaky.
      ' Basic
      FSO.MoveFolder("C:\Temp1\*", "C:\Temp2")
    
      # Python
      fs.MoveFolder(r"C:\Temp1\*", r"C:\Temp2")
    Vrátí řetězec obsahující normalizovanou cestu, tj. s odstraněnými nadbytečnými oddělovači a odkazy o úroveň výš.
Například každá z cest A//B, A/B/, A/./B a A/foo/../B je normalizována na A/B.
V systému Windows se lomítka "/" převádějí na zpětná lomítka "\".
U argumentu filename i vráceného řetězce je použit zápis podle aktuální hodnoty vlastnosti SF_FileSystem.FileNaming.
svc.Normalize(filename: str): str
filename: řetězec představující platnou cestu. Není nutné, aby soubor nebo adresář určený tímto argumentem existoval.
    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/../")
  
    fs.FileNaming = "URL"
    normPath = fs.Normalize("file:///home/user/Documents/")
    normPath = fs.Normalize("file:///home//user//Documents/")
    normPath = fs.Normalize("file:///home//user//Documents/../")
  Otevře soubor a vrátí objekt TextStream, který lze použít pro čtení ze souboru, zápis do něj nebo zápis do něj v režimu přidávání.
Metoda nekontroluje, zda se jedná o textový soubor.
Nastane-li chyba, vrátí metoda objekt Null (v Basicu) nebo None (v Pythonu).
svc.OpenTextFile(filename: str, iomode: int = 1, create: bool = False, encoding: str = 'UTF-8'): svc
filename: Určuje soubor, který se má otevřít.
iomode: Značí režim vstupu/výstupu. Může se jednat o některou ze tří konstant: svc.ForReading (výchozí), svc.ForWriting a svc.ForAppending.
create: Booleovská hodnota určující, zda může být vytvořen nový soubor, pokud zadaný soubor filename neexistuje:
Je-li True, nový soubor a jeho rodičovské složky se vytvoří.
Je-li False, nové soubory se nevytvoří (výchozí).
encoding: Znaková sada, která se má použít. Výchozím kódováním je "UTF-8".
      Dim myFile As Object
      FSO.FileNaming = "SYS"
      Set myFile = FSO.OpenTextFile("C:\Temp\ThisFile.txt", FSO.ForReading)
      If Not IsNull(myFile) Then
          ' ...
      End If
    
      fs.FileNaming = "SYS"
      myFile = fs.OpenTextFile(r"C:\Temp\ThisFile.txt", fs.ForReading)
      if myFile is not None:
          # ...
    Otevře dialogové okno pro otevření nebo uložení souborů.
Pokud je nastaven režim SAVE a vybraný soubor již existuje, zobrazí se zpráva s upozorněním.
svc.PickFile(defaultfile: str ='', mode: str = 'OPEN', filter: str = ''): str
defaultfile: Řetězec složený z názvu složky a souboru:
Část se složkou určuje složku, která se zobrazí po otevření dialogového okna (výchozí = naposledy vybraná složka).
Část se souborem značí výchozí soubor, který se má otevřít či uložit.
mode: Řetězec, jehož hodnota je buď "OPEN" (pro vstupní soubory), nebo "SAVE" (pro výstupní soubory). Výchozí hodnotou je "OPEN".
filter: Přípona souborů zobrazených po otevření dialogového okna (výchozí = bez filtru).
V níže uvedených příkladech je otevřen výběr souboru s filtrem pro příponu "txt".
      ' Basic
      aFile = FSO.PickFile("C:\Documents", "OPEN", "txt")
    
      # Python
      aFile = fs.PickFile(r"C:\Documents", "OPEN", "txt")
    Otevře dialogové okno pro výběr složky.
svc.PickFolder(defaultfolder: str = '', freetext: str = ''): str
defaultfolder: Řetězec obsahující název složky zobrazené po otevření dialogového okna (výchozí = naposledy vybraná složka).
freetext: Text zobrazený v okně (výchozí = "").
      ' Basic
      aFolder = FSO.PickFolder("C:\Dokumenty", "Zvolte složku nebo stiskněte Zrušit")
    
      # Python
      aFolder = fs.PickFolder(r"C:\Dokumenty", "Zvolte složku nebo stiskněte Zrušit")
    Vrátí pole začínající od 0 s řetězci, které odpovídají složkám uloženým na zadaném umístění foldername.
Seznam může být filtrován pomocí zástupných znaků.
svc.SubFolders(foldername: str, filter: str = '', includesubfolders: bool = False): str[0..*]
foldername: Řetězec představující složku, která musí existovat. Tento argument nesmí označovat soubor.
filter: Řetězec obsahující zástupné znaky ("?" nebo "*"), které se použijí na výsledný seznam složek (výchozí = "").
includesubfolders: Nastavením tohoto argumentu na True zahrnete obsah podsložek (výchozí = False).
      Dim folderList As Variant, folder As String
      FSO.FileNaming = "SYS"
      folderList = FSO.SubFolders("/home/user/")
      For Each folder In folderList
          ' ...
      Next folder
    
      fs.FileNaming = "SYS"
      folderList = fs.SubFolders("/home/user/")
      for folder in folderList:
          # ...