Wobsah

# Słužba ScriptForge.FileSystem

Słužba FileSystem rutiny za wobchadźenje z datajemi a rjadowakami wobsahuje. Potom su někotre přikłady podate, kotrež tuta słužba skići:

- Přepruwować, hač dataja abo rjadowak eksistuje.

- Rjadowaki a dataje wutworić a zhašeć

- Dialogowe pola startować, zo bychu so dataje wočinili/składowali.

- Přistup k lisćinje datajow w rjadowaku atd.

Metody w słužbje FileSystem so zwjetša na tykačce UNO XSimpleFileAccess bazuja.

## Definicije

Sćěhowaca tabela hłowne parametry nalistuje, kotrež so přez najwjace metodow w słužbje FileSystem wužiwaja.

Parameter | Wopisanje
--- | ---
FileName | Dospołne mjeno dataje inkluziwnje šćežku bjez šćežkoweho dźělatka na kóncu.
FolderName | Dospołne mjeno rjadowaka inkluziwnje šćežku. Móže šćežkowe dźělatko na kóncu wobsahować abo nic.
Name | Poslednja komponenta mjeno rjadowaka abo mjeno dataje inkluziwnje jeho kóncowku. Tutón parameter so přeco z pomocu natiwneho formata dźěłoweho systema zwuraznja.
BaseName | Poslednja komponenta mjeno rjadowaka abo mjeno dataje bjez jeho kóncowki.
NamePattern | Jedne z horjeka naspomnjenych mjenow, kotrež wildcard w swojej poslednjej komponenće wobsahuje. Dowolene wildcard su: "?" jednotliwe znamješko reprezentuje "*" žane znamješko, jedne znamješko abo wjacore znamješka reprezentuje

Słužba FileSystem zmóžnja, operacije za wjacore dataje naraz wuwjesć. Z pomocu mjenowych mustrow móža wužiwarske skripty wjacore dateje kopěrować, přesunyć abo zhašeć. Zatwarjene metody Basic pak móža jenož z jednotliwymi datajemi wobchadźeć.

### Notacija za datajowe mjena

Notacija, kotraž so wužiwa, zo by mjeno datajow a rjadowakow zwurazniła, za argumenty kaž tež wróćene hódnoty, so přez kajkosć FileNaming słužby FileSystem definuje.

Krótko prajene, su móžne reprezentaciske typy „URL“ (datajowa notacija URL), „SYS“ (notacija dźěłoweho systema) a „ANY“ (standard). Hlejće dalše informacije deleka.

Přikład notacije URL je file:///C:Documents/my_file.odt. Rozwažće po móžnosći wužiwanje notacije URL, dokelž je přenošomna alternatiwa.

Wužiwanje skrótšenki "~" (tilda), kotraž je w na Linux bazowacych dźěłowych systemach z wašnjom, so njepodpěruje, zo by šćežku k rjadowakej a datajowemu mjenu zwurazniło. Wužiwajće město "~/Documents/my_file.odt" dospołnu šćežku "/home/user/Documents/my_file.odt".

## Słužbowe wuwołanje

Slědowaca kodow šlipka słužbu FielSystem wuwołuje. Metoda BuildPath je so jako přikład wužiła.

##### W Basic

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

##### W Python

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

## Přistup k wirtualnemu datajowemu systemej dokumenta

Dokumentowe dataje LibreOfficeDev su skomprimowane ZIP-dataje, kotrež dataje a rjadowaki wobsahuja, kotrež poprawny dokumentowy wobsah reprezentuje. Mjeztym zo dokument je wočinjeny, su přistup k wirtualnemu datajowemu systemej, wuslědźenje jeho struktury kaž tež čitanje a wutworjenje datajow a rjadowakow móžne.

Slědowacy přikład pokazuje, kak móžeće tekstowu dataju z mjenom myFile.txt wutworić a ju we wirtuelnym datajowym systemje składować.

##### W 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)
        ' Wotwołuje šćežkowu notaciju URL ke korjenjowemu zapisej wirtuelneho datajoweho systema
        sRoot = oDoc.FileSystem()
        sMyDir = sRoot & "myDir"
        ' Wutwori rjadowak "myDir", jeli njeeksistuje
        If Not fso.FolderExists(sMyDir) Then
            fso.CreateFolder(sMyDir)
        End If
        ' Wutwori dataju a pisa tekst do njeje
        sFile = fso.BuildPath(sMyDir, "myFile.txt")
        oFile = fso.CreateTextFile(sFile)
        oFile.WriteLine("Hello!")
        oFile.CloseFile()

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

W normalnym padźe dadźa so wšě metody słužby FileSystem wužiwać, zo bychu dataje we wirtuelnym datajowym systemje dokumenta manipulować. Ale slědowace wobmjezowanja płaća:

- Njeje móžno, dataje w korjenjowym rjadowaku wutworić. Wužiwajće eksistowace podrjadowaki abo wutworće nowe rjadowaki, zo byšće dataje w datajowym systemje dokumenta składował.

- Notacija fileNaming so přeco jako „URL“ wobhladuje.

- Metody CompareFiles, GetFileModified, HashFile, PickFile a PickFolder nałožujomne njejsu.

- Metoda GetFileLen přeco nula wróća.

- Metoda Normalize přeco zapodawanski znamješkowy rjećazk njezměnjeny wróća.

Šćežka k wirtuelnemu datajowemu systemej fyziska adresa na krutej tačeli ličaka njeje. Je jenož wot skripta LibreOfficeDev přistupny a eksistuje jenož, mjeztym zo dokument je wočinjeny.

## Kajkosće

Mjeno | Přećiwo pisanju škitany | Typ | Wopisanje
--- | --- | --- | ---
FileNaming | Ně | String | Postaja abo wróća aktualnu notaciju datajow a rjadowakow, pak "ANY", "URL" pak "SYS": "ANY": (standard) Metody słužby FielSystem notaciju URL kaž tež notaciju aktualneho dźěłoweho systema za zapodawanske argument akceptuja, wróćeja wšak přeco znamješkowe rjećazki URL. "URL": Metody słužby FileSystem notaciju URL za zapodawanske argumenty wočakuja a wróćeja znamješkowe rjećazki URL. "SYS": Metody słužby FileSystem notaciju aktualneho dźěłoweho systema za zapodawanske argumenty wočakuja a wróćeja znamješkowe rjećazki. Jónu nastajena, so kajkosć FileNaming njezměnjena wostawa, pak do kónca posedźenja LibreOfficeDev pak doniž so znowa njenastaja.
ConfigFolder | Haj | String | Wróći konfiguraciski rjadowak LibreOfficeDev.
ExtensionsFolder | Haj | String | Wróći rjadowak, hdźež rozšěrjenja su instalowane.
HomeFolder | Haj | String | Wróći startowy rjadowak wužiwarja.
InstallFolder | Haj | String | Wróći instalaciski rjadowak LibreOfficeDev.
TemplatesFolder | Haj | String | Wróći rjadowak, kotryž dataje ze systemowymi předłohami wobsahuje.
TemporaryFolder | Haj | String | Wróći rjadowak nachwilnych datajow, kotryž je w šćežkowych nastajenjach LibreOfficeDev definowany.
UserTemplatesFolder | Haj | String | Wróći rjadowak, kotryž dataje za swójske dokumentowe předłohi wobsahuje.

Lisćina metodow w słužbje 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

Zwjazuje rjadowakowu šćežku a mjeno dataje a wróća dospołne datajowe mjeno z płaćiwym šćežkowym dźělatkom. Šćežkowe dźělatko so jenož přidawa, jeli trjeba.

### Syntaksa:

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

### Parametry:

foldername: Šćežka, z kotrejž so name kombinuje. Podata šćežka njetrjeba eksistowacy rjadowak być.

name: Mjeno dataje, kotraž so ma k foldername připowěsnyć. Tutón parameter notaciju aktualneho dźěłoweho systema wužiwa.

### Přikład:

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

##### W Python

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

## CompareFiles

Přirunuje dwě dataji a wróća True, hdyž zdatej so identiskej być.

Wotwisujo wot hódnoty argumenta comparecontents, móže přirunanje mjez woběmaj datajomaj pak na datajowych atributach bazować (kaž na poslednim změnjenym datumje) pak na wobsahu dataje.

### Syntaksa:

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

### Parametry:

filename1, filename2: Dataji, kotrejž so matej přirunać.

comparecontents: Hdyž True, so wobsah datajow přirunuje (standard = False).

### Přikład:

##### W Basic

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

##### W Python

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

## CopyFile

Kopěruje jednu dataju abo wjacore dataje wot jednoho městna do druheho. Wróći True, jeli znajmjeńša jedna dataja je so kopěrowała abo False, jeli zmylk je nastał.

Zmylk nastawa, jeli parameter source znamješka wildcard wužiwa a žanej dataji wotpowěduje.

Metoda hnydom zastaji, po tym zo je na zmylk storčiła. Metoda ničo njewospjetuje ani njecofa změny, kotrež su so přewjedli, prjedy hač zmylk je nastał.

### Syntaksa:

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

### Parametry:

source: Móže Filename abo NamePattern być, kotryž jednu dataju abo wjacore dataje podawa, kotrež so maja kopěrować.

destination: Móže pak FileName być, kotrež podawa, hdźež jednotliwa dataja source ma so kopěrować pak FolderName, do kotrehož so maja wjacore dataje ze source kopěrować.

- Jeli destination njeeksistuje, wutwori so.

- Znamješka wildcard w destination dowolene njejsu.

overwrite: Jeli True (standard), dadźa so dataje přepisać. Metoda so njeporadźi, jeli destination je přećiwo pisanju škitany, njedźiwajo na hódnotu, kotraž je w overwrite podata.

### Přikład:

W slědowacych přikładach prěnja linka jednotliwu dataju kopěruje, mjeztym zo druha linka wjacore dataje z pomocu wildcard kopěruje.

##### W Basic

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

##### W 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)

Dźiwajće na to, zo so podrjadowaki a jich wobsah njekopěruja, hdyž so wildcard w argumenće source wužiwaja.

## CopyFolder

Kopěruje jedyn rjadowak abo wjacore rjadowaki wot jednoho městna do druheho. Wróći True, jeli znajmjeńša jedyn rjadowak je so kopěrował abo False, jeli zmylk je nastał.

Zmylk tež nastanje, jeli parameter source znamješka wildcard wužiwa a žanomu rjadowakej njewotpowěduje.

Metoda hnydom zastaji, po tym zo je na zmylk storčiła. Metoda ani njewospjetuje ani změny njecofa, kotrež su so přewjedli, prjedy hač zmylk je nastał.

### Syntaksa:

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

### Parametry:

source: Móže FolderName abo NamePattern być, kotryž jedyn rjadowak abo wjacore rjadowaki podawa, kotrež so maja kopěrować.

destination: Podawa FolderName, do kotrehož so maja jedyn rjadowak abo wjacore rjadowaki kopěrować, kotrež su w source definowane.

- Jeli destination njeeksistuje, wutwori so.

- Znamješka wildcard w destination dowolene njejsu.

overwrite: Jeli True (standard), dadźa so dataje přepisać. Metoda so njeporadźi, jeli destination je přećiwo pisanju škitany, njedźiwajo na hódnotu, kotraž je w overwrite podata.

### Přikład:

W slědowacych přikładach so wšě dataje, rjadowaki a podrjadowaki kopěruja.

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

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

## CreateFolder

Wutwori podate FolderName. Wróći True, jeli rjadowak je so wuspěšnje wutworił.

Jeli podaty rjadowak ma nadrjadowany rjadowak, kotryž njeeksistuje, wutwori so.

### Syntaksa:

svc.CreateFolder(foldername: str): bool

### Parametry:

foldername: Znamješkowy rjećazk, kotryž rjadowak reprezentuje, kotryž so ma wutworić. Jeli rjadowak hižo eksistuje, so wuwzaće wuwabi.

### Přikład:

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

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

## CreateTextFile

Wutwori podatu dataju a wróći słužbowu instancu TextStream, kotraž da so wužiwać, zo by do dataje pisała.

Metoda objekt Null wróća, jeli zmylk je nastał.

### Syntaksa:

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

### Parametry:

filename: Mjeno dataje, kotraž so ma wutworić.

overwrite: Boolowa hódnota, kotraž postaja, hač filename da so přepisać (standard = True).

encoding: Znamješkowa sadźba, kotraž so ma wužiwać. Standardne kodowanje je „UTF-8“.

### Přikład:

##### W Basic

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

##### W Python

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

Zo byšće wjace wo mjenach znamješkowych sadźbow zhonił, wopytajće stronu Character Sets IANA. Dźiwajće na to, LibreOfficeDev nic wšě eksistowace znamješkowe sadźby implementuje.

## DeleteFile

Zhaša jednu dataju abo wjacore dataje. Wróći True, jeli znajmjeńša jedna dataja je so zhašała abo False, jeli zmylk je nastał.

Zmylk nastanje, jeli parameter filename znamješka wildcard wužiwa a žanej dataji njewotpowěduje.

Dataje, kotrež so maja zhašeć, njesmědźa přećiwo pisanju škitane być.

Metoda hnydom zastaji, po tym zo je na zmylk storčiła. Metoda ani njewospjetuje ani změny njecofa, kotrež su so přewjedli, prjedy hač zmylk je nastał.

### Syntaksa:

svc.DeleteFile(filename: str): bool

### Parametry:

filename: Móže FileName abo NamePattern być, kotryž jednu dataju abo wjacore dataje podawa, kotrež so maja zhašeć.

### Přikład:

W slědowacych přikładach so jenož dataje zhašeja, podrjadowaki so njezhašeja.

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

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

## DeleteFolder

Zhaša jedyn rjadowak abo wjacore rjadowaki. Wróći True, jeli znajmjeńša jedyn rjadowak je so zhašał abo False, jeli zmylk je nastał.

Zmylk tež nastanje, jeli parameter foldername znamješka wildcard wužiwa a žanomu rjadowaku njewotpowěduje.

Rjadowaki, kotrež so maja zhašeć, njesmědźa přećiwo pisanju škitane być.

Metoda hnydom zastaji, po tym zo je na zmylk storčiła. Metoda ani njewospjetuje ani změny njecofa, kotrež su so přewjedli, prjedy hač zmylk je nastał.

### Syntaksa:

svc.DeleteFolder(foldername: str): bool

### Parametry:

foldername: Móže FolderName abo NamePattern być, kotryž jedyn rjadowak abo wjacore rjadowaki podawa, kotrež so maja zhašeć.

### Přikład:

W slědowacych přikładach so jenož rjadowaki a jich wobsah zhašeja. Dataje w nadrjadowanym rjadowaku "C:\Temp" so njezhašeja.

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

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

## ExtensionFolder

Wróći znamješkowy rjećazk, kotryž rjadowak wobsahuje, hdźež je podaty rozšěrjenski pakćik instalowany.

Aktualna hódnota kajkosće SF_FileSystem.FileNaming so wužiwa, zo by notaciju wróćeneho znamješkoweho rjećazka postajiła.

Wužiwajće kajkosć Extensions ze słužby Platform, zo byšće matriks znamješkoweho rjećazka z ID wšěch instalowanych rozšěrjenjow dóstał.

### Syntaksa:

svc.ExtensionFolder(extension: str): str

### Parametry:

extension: Znamješkowy rjećazk z ID rozšěrjenja. Jeli rozšěrjenje instalowane njeje, so wuwzaće wuwabi.

### Přikład:

Slědowace přikłady w Basic a Python rjadowak wróćeja, hdźež je so rozšěrjenje APSO instalowało.

          ' 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

Wróći True, jeli podate datajowe mjeno eksistuje, hewak metoda False wróći.

Jeli parameter filename je woprawdźe eksistowace rjadowakowe mjeno, metoda False wróći.

### Syntaksa:

svc.FileExists(filename: str): bool

### Parametry:

filename: Znamješkowy rjećazk, kotryž dataju reprezentuje, kotraž so ma testować.

### Přikład:

##### W Basic

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

##### W Python

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

## Files

Wróći na nuli bazowacu matriks (BASIC) abo tupel (Python) datajow, kotrež su w podatym rjadowaku składowane. Kóždy zapisk w matriksy abo tupelu je znamješkowy rjećazk, kotryž dospołnu šćežku a datajowe mjeno wobsahuje.

Jeli argument foldername rjadowak podawa, kotryž njeeksistuje, so wuwzaće wuwabi.

Rezultowaca lisćina da so z wildcard filtrować.

### Syntaksa:

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

### Parametry:

foldername: Znamješkowy rjećazk, kotryž rjadowak reprezentuje. Rjadowak dyrbi eksistować. Tutón argument njesmě dataju woznamjenić.

filter: Znamješkowy rjećazk, kotryž wildcard ("?" a "*") wobsahuje, kotryž so na rezultowacu lisćinu datajow nałožuje (standard = "").

includesubfolders: Stajće tutón argument na True, zo byšće wobsah podrjadowakow zapřijał (standard = False).

### Přikład:

##### W Basic

          Dim filesList As Variant, file As String
          FSO.FileNaming = "SYS"
          ' Wróći wšě dataje, kotrež filtrej "*.txt" wotpowěduja, inkluziwnje dataje w podrjadowakach.
          filesList = FSO.Files("/home/user/", "*.txt", IncludeSubfolders := True)
          For Each file In filesList
              ' ...
          Next file

##### W Python

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

## FolderExists

Wróći True, jeli podate FolderName je płaćiwe a eksistuje, hewak metoda False wróći.

Jeli parameter foldername je woprawdźe eksistowace datajowe mjeno, metoda False wróći.

### Syntaksa:

svc.FolderExists(foldername: str): bool

### Parametry:

foldername: Znamješkowy rjećazk, kotryž rjadowak reprezentuje, kotryž so ma testować.

### Přikład:

##### W Basic

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

##### W Python

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

## GetBaseName

Wróći BaseName (runa so poslednjej komponenće) rjadowakoweho abo datajoweho mjena bjez kóncowki.

Metoda njepřepruwuje, hač podata dataja abo podaty rjadowak eksistuje.

### Syntaksa:

svc.GetBaseName(filename: str): str

### Parametry:

filename: Znamješkowy rjećazk, kotryž datajowe mjeno a jeho šćežku reprezentuje.

### Přikład:

W slědowacych přikładach prěnje metodowe wuwołanje GetBaseName rjadowakej wotpowěduje, tak zo funkcija poslednju komponentu šćežki wróći. Druhe wuwołanje datajowe mjeno jako zapodaće dóstawa, tak zo so mjeno dataje bjez kóncowki wróća.

##### W Basic

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

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

Wróći kóncowku datajoweho abo rjadowakoweho mjena bjez dypka ".".

Metoda njepřepruwuje, hač podata dataja abo podaty rjadowak eksistuje.

Jeli so tuta metoda na mjeno rjadowaka abo na dataju bjez kóncowki nałožuje, so prózdny znamješkowy rjećazk wróći.

### Syntaksa:

svc.GetExtension(filename: str): str

### Parametry:

filename: Znamješkowy rjećazk, kotryž datajowe mjeno a jeho šćežku reprezentuje.

### Přikład:

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

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

## GetFileLen

Zatwarjena funkcija Basic FileLen ličbu bajtow wróća, kotrež su w dataji jako hódnota Long wobsahowane, t. r. hač do 2 GB.

Metoda GetFileLen móže z datajemi z wo wjele wjetšimi wulkosćemi wobchadźeć, wróća hódnotu Currency.

### Syntaksa:

svc.GetFileLen(filename: str): num

### Parametry:

filename: Znamješkowy rjećazk, kotryž eksistowacu dataju reprezentuje.

### Přikład:

##### W Basic

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

##### W Python

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

## GetFileModified

Wróći datum poslednjeje změny dateje dataje.

### Syntaksa:

svc.GetFileModified(filename: str): datetime

### Parametry:

filename: Znamješkowy rjećazk, kotryž eksistowacu dataju reprezentuje.

### Přikład:

##### W Basic

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

##### W Python

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

## GetName

Wróći poslednju komponentu datajoweho abo rjadowakoweho mjena w natiwnym formaće dźěłoweho systema.

Metoda njepřepruwuje, hač podata dataja abo podaty rjadowak eksistuje.

### Syntaksa:

svc.GetName(filename: str): str

### Parametry:

filename: Znamješkowy rjećazk, kotryž datajowe mjeno a jeho šćežku reprezentuje.

### Přikład:

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

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

## GetParentFolderName

Wróći znamješkowy rjećazk, kotryž mjeno nadrjadowaneho rjadowaka abo podatu datajowe abo rjadowakowe mjeno eksistuje.

Metoda njepřepruwuje, hač podata dataja abo podaty rjadowak eksistuje.

### Syntaksa:

svc.GetParentFolderName(filename: str): str

### Parametry:

filename: Znamješkowy rjećazk z datajowym abo rjadowakowym mjenom, kotryž so ma analyzować.

### Přikład:

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

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

## GetTempName

Wróći připadnje generowane nachwilne datajowe mjeno, kotrež je wužitne za wuwjedźenje procesow, kotrež sej nachwilnu dataju wužaduja.

Po standardźe wróćene datajowe mjeno kóncowku nima. Wužiwajće parameter extension, zo byšće kóncowku datajoweho mjena podał, kotrež so ma generować.

Rjadowakowy dźěl wróćeneho znamješkoweho rjećazka je nachwilny rjadowak systema.

Metoda nachwilnu dataju njewutwori.

### Syntaksa:

svc.GetTempName(extension: str): str

### Parametry:

extension: Kóncowka nachwilneho datajoweho mjena (standard = "").

### Přikład:

##### W Basic

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

##### W Python

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

## HashFile

Funkcije Hash so přez někotre kryptografiske algoritmusy w digitalnych signaturach, powěsćowych awtentifkaciskich kodach, wobšudniskim spóznaću, porstowych wotćišćach, přepruwowanskich sumach (kontrola powěsćoweje integrity), tabelach hash, hesłowym składźe a wjele wjace wužiwaja.

Metoda HashFile wuslědk funkcije hash wróća, kotraž so na podatu dataju nałožuje a kotraž wěsty algoritmus wužiwa. Wróćena hódnota je znamješkowy rjećazk z heksadecimalnych cyfrow w małych pismikach.

Algoritmusy hash, kotrež so podpěruja, su: MD5, SHA1, SHA224, SHA256, SHA384 a SHA512.

### Syntaksa:

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

### Parametry:

filename: Znamješkowy rjećazk, kotryž eksistowacu dataju reprezentuje.

algorithm: Jedyn z podpěranych algoritmusow.

### Přikład:

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

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

## MoveFile

Přesuwa jednu dataju abo wjacore dataje wot jednoho městno do druheho. Wróći True, jeli znajmjeńša jedna dataja je so přesunyła abo False, jeli zmylk je nastał.

Zmylk tež nastanje, jeli parameter source znamješka wildcard a žanej dataji wotpowěduje.

Metoda hnydom zastaji, po tym zo je na zmylk storčiła. Metoda ani njewospjetuje ani změny njecofa, kotrež su so přewjedli, prjedy hač zmylk je nastał.

### Syntaksa:

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

### Parametry:

source: Móže FileName abo NamePattern być, zo by jednu dataju abo wjacore dataje woznamjenił, kotrež so maja přesunyć.

destination: Jeli source je FileName, da tutón parameter nowu šćežku a datajowe mjeno přesunjeneje dataje podawa.

Jeli přesuwanski proces wjacore dataje wobjima, dyrbi destination rjadowakowe mjeno być. Jeli njeeksistuje, wutwori so.

Jeli source a destination samsny nadrjadowany rjadowak matej, budźe metoda source přemjenować.

Znamješka wildcard w destination dowolene njejsu.

### Přikład:

W slědowacych přikładach so jenož dataje přesuwaja, podrjadowaki nic.

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

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

## MoveFolder

Přesuwa jedyn rjadowak abo wjacore rjadowaki wot jednoho městna do druheho. Wróći True, jeli znajmjeńša jedyn rjadowak je so přesunył abo False, jeli zmylk je nastał.

Zmylk tež nastanje, jeli parameter source znamješka wildcard wužiwa a žanomu rjadowakej njewotpowěduje.

Metoda hnydom zastaji, po tym zo je na zmylk storčiła. Metoda ani njewospjetuje ani změny njecofa, kotrež su so přewjedli, prjedy hač zmylk je nastał.

### Syntaksa:

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

### Parametry:

source: Móže FolderName abo NamePattern być, zo by jedyn rjadowak abo wjacore rjadowaki woznamjenił, kotrež so maja přesunyć.

destination: Jeli přesuwanski proces jednotliwy rjadowak wopřijima, je destination mjeno a šćežka přesunjeneho rjadowaka a njesmě eksistować.

Jeli wjacore rjadowaki so přesuwaja, destination podawa, hdźež so rjadowaki w source přesuwaja. Jeli destination njeeksistuje, wutwori so.

Znamješka wildcard w destination dowolene njejsu.

### Přikład:

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

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

## Normalize

Wróći znamješkowy rjećazk, kotryž normalizowane šćežkowe mjeno wobsahuje, hdyž so redundantne dźělatka a referency na wyšej runinje chowaja.

Šćežkowe mjena A//B, A/B/, A/./B a A/foo/../B na přikład so wšě do A/B normalizuja.

Na Windows so nakósne smužki "/" do nawrótnych nakósnych smužkow "\" přetworjeja.

Aktualna hódnota kajkosće SF_FileSystem.FileNaming so wužiwa, zo by notaciju argumenta filename kaž tež format wróćeneho znamješkoweho rjećazka postajił.

### Syntaksa:

svc.Normalize(filename: str): str

### Parametry:

filename: znamješkowy rjećazk, kotryž płaćiwe šćežkowe mjeno reprezentuje. Dataja abo zapis, kotrejž so přez tutón argument reprezentujetej, snano njeeksistujetej.

### Přikład:

##### W 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/../")

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

Wočinja dataju a wróća objekt TextStream, kotryž da so wužiwać, zo by z dataje čitał, do dataje pisał a k dataji připowěsnył.

Dźiwajće na to, zo metoda njepřepruwuje, hač podata dataja je woprawdźe tekstowa dataja.

Metoda objekt Null (w Basic) abo None (w Python) wróća, jeli zmylk je nastał.

### Syntaksa:

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

### Parametry:

filename: Identifikuje dataju, kotraž so ma wočinić.

iomode: Podawa zapodawanski/wudawanski modus. Móže jedna z třoch konstantow być: svc.ForReading (standard), svc.ForWriting abo svc.ForAppending.

create: Boolowa hódnota, kotraž podawa, hač da so nowa dataja wutworić, jeli podate filename njeeksistuje:

- Jeli True, so nowa dataja a jeje nadrjadowane rjadowaki wutworjeja, jeli njeeksistuja;

- Jeli False, so nowe dataje njewutworjeja (standard).

encoding: Znamješkowa sadźba, kotraž so ma wužiwać. Standardne kodowanje je „UTF-8“.

### Přikład:

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

##### W Python

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

## PickFile

Wočinja dialogowe polo, zo by dataje wočiniła abo składowała.

Jeli modus SAVE je nastajeny a wubrana dataja eksistuje, so warnowanska zdźělenka pokaza.

### Syntaksa:

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

### Parametry:

defaultfile: Tutón argument je znamješkowy rjećazk, kotryž z rjadowakoweho a datajoweho mjena wobsteji:

- Rjadowakowy dźěl rjadowak podawa, kotryž so pokazuje, hdyž so dialog wočinja (standard = jako posledni wubrany rjadowak).

- Datajowy dźěl standardnu dataju woznamjenja, kotraž so ma wočinić abo składować.

mode: Znamješkowy rjećazk, kotryž móže pak "OPEN" (za zapodawanske dataje) pak "SAVE" (za wudawanske dataje) być. Standardna hódnota je "OPEN".

filter: Kóncowka datajow, kotraž so pokazuje, hdyž so dialog wočinja (standard = žadyn filter).

### Přikład:

Slědowace přikłady datajowy wuběr z nałoženym filtrom "txt" wočinjeja.

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

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

## PickFolder

Wočinja dialogowe polo za wuběranje rjadowaka.

### Syntaksa:

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

### Parametry:

defaultfolder: Znamješkowy rjećazk, kotryž rjadowakowe mjeno wobsahuje, kotrež so pokazuje, hdyž so dialog wočinja (standard = jako posledni wubrany rjadowak).

title: Tekst, kotryž so ma we hłowje dialog pokazać. Standard so přez desktopowu wokolinu nastaja.

freetext: Tekst, kotryž so ma dialogu pokazać (standard = ""). Tutón parameter je zestarjeny.

### Přikład:

          ' Basic
          aFolder = FSO.PickFolder("C:\Dokumente", "Wubjerće rjadowak abo klikńće na Přetorhnyć")

          # Python
          aFolder = fs.PickFolder(r"C:\Dokumente", "Wubjerće rjadowak abo klikńće na Přetorhnyć")

## SubFolders

Wróći na nuli bazowacu matriks znamješkowych rjećazkow, kotraž rjadowakam wotpowěduje, kotrež su w datym foldername składowane.

Lisćina da so z wildcard filtrować.

### Syntaksa:

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

### Parametry:

foldername: Znamješkowy rjećazk, kotryž rjadowak reprezentuje. Rjadowak dyrbi eksistować. foldername dyrbi dataju woznamjenić.

filter: Znamješkowy rjećazk, kotryž wildcard ("?" a "*") wobsahuje, kotrež so na rezultowacu lisćinu rjadowakow nałožuja (standard = "").

includesubfolders: Stajće tutón argument na True, zo byšće wobsah podrjadowakow zapřijał (standard = False).

### Přikład:

##### W Basic

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

##### W Python

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

Wšě rutiny Basic ScriptForge abo identifikatory, kotrež so z podsmužku „_“ započinaja, su za interne wužiwanje wuměnjene. Njejsu za to myslene, so w makrach Basic abo skriptach Python wužiwać.

Podobne temy

ScriptForge.TextStream service

Input Function [VBA]

Open Statement

Prošu podpěrajće nas!