Tento objekt představuje soubor v souborovém systému serveru. Zprostředkovává přístup k informacím o souboru a poskytuje metody pro manipulaci se soubory.
Protože se nejedná a vnitřní objekt ASP, je nutné před jeho použitím získat jeho instanci. Instanci objektu File můžeme získat dvěma způsoby. Buď jako prvek kolekce Files v objektu Folder nebo přímo z objektu FileSystemObject metodou GetFile.
Příklad vytvoření objektu File:
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
'Objekt souborového systému
Set objFile = objFSO.GetFile("C:\soubor.txt")
'Objekt File zastupující soubor C:\soubor.txt
V dalším textu budeme předpokládat, že máme instanci objektu File pojmenovanou objFile.
Objekt File poskytuje metody pro vykonávání souborových operací nad daným souborem.
Metoda Copy zkopíruje soubor do zadané složky. Syntaxe je:
objFile.Copy(cesta[, přepsat])
Parametr cesta určuje umístění, kam se má soubor zkopírovat.
Končí-li cesta zpětným lomítkem "\", znamená cesta složku, v níž se vytvoří kopie souboru s původním jménem. V opačném případě je parametr považován za úplnou cestu obsahující i nové jméno souboru a vytvoří se kopie souboru s tímto novým jménem.
Parametr přepsat určuje, zda má být cílový soubor přepsán, pokud již existuje.
Při vynechání parametru se použije implicitní hodnota true. Pokud má parametr hodnotu false a cílový soubor již existuje, dojde k chybě.
Příklad zkopírování souboru soubor.txt v kořenové složce disku C pod nový názvem soubor2.txt:
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
'Objekt souborového systému
Set objFile = objFSO.GetFile("C:\soubor.txt")
'Objekt File zastupující soubor C:\soubor.txt
objFile.Copy("C:\soubor2.txt")
'Zkopírování souboru
Metoda Delete umožňuje smazat soubor. Tato metoda má nepovinný parametr, který určuje, zda má být soubor smazán i v případě, že je určen pouze pro čtení. Pokud parametr neuvedeme, použije se implicitní hodnota false, která znemožní smazání souborů určených pouze pro čtení.
Pokud nemá uživatel nastavena práva, umožňující smazání daného souboru, způsobí příkaz objFile.Delete(true) chybu.
Metoda Move slouží k přesunu nebo přejmenování souboru. Syntaxe je stejná jako u metody Copy, tedy:
objFile.Move(cesta[, přepsat])
Končí-li zadaná cesta zpětným lomítkem, je považována za složku, do níž má být soubor přesunut. V opačném případě se část cesty za posledním lomítkem použije jako nové jméno souboru.
Nepovinný parametr přepsat určuje, zda se má cílový soubor (v případě, že již existuje) přepsat.
Příklad přejmenování souboru soubor.txt v kořenové složce disku C na název soubor2.txt:
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
'Objekt souborového systému
Set objFile = objFSO.GetFile("C:\soubor.txt")
'Objekt File zastupující soubor C:\soubor.txt
objFile.Move("C:\soubor2.txt")
'Přejmenování souboru
Tato metoda otevře soubor a vrátí objekt TextStream, který slouží pro čtení ze souboru, zápis do souboru nebo přidávání na konec souboru.
Metoda má syntaxi:
objTextStream = objFile.OpenAsTextStream([režim], [formát])
Parametr režim může nabývat následujících hodnot:
| Hodnota | Konstanta | Popis |
|---|---|---|
| 1 | ForReading | Objekt TextStream bude možné použít pro čtení ze souboru. (Implicitní hodnota) |
| 2 | ForWriting | Objekt TextStream bude možné použít pro zápis do souboru. |
| 8 | ForAppending | Objekt TextStream bude možné použít pro přidávání na konec souboru. |
Parametr formát může nabývat následujících hodnot:
| Hodnota | Konstanta | Popis |
|---|---|---|
| 0 | TristateFalse | ASCII. (Implicitní hodnota) |
| -1 | TristateTrue | Unicode. |
| -2 | TristateUseDefault | Standardní formát používaný v operačním systému. |
Aby byly dostupné tyto konstanty, musí být načtena typová knihovna scrrun.dll, což se provede direktivou:
<!-- METADATA TYPE="TypeLib" FILE="C:\WINNT\system32\scrrun.dll" -->
Cesta v atributu FILE musí odpovídat umístění souboru na konkrétním serveru.
Atribut Attributes slouží pro zjištění a nastavování systémových atributů souboru.
Celočíselná hodnota atributu může být součet libovolné kombinace následujících hodnot:
| Hodnota | Atribut | Popis | Povolené operace nad atributem |
|---|---|---|---|
| 0 | Normal | Běžný soubor | Žádné |
| 1 | ReadOnly | Soubor pouze pro čtení | Čtení i nastavení |
| 2 | Hidden | Skrytý soubor | Čtení i nastavení |
| 4 | System | Systémový soubor | Čtení i nastavení |
| 8 | Volume | Jméno disku | Čtení |
| 16 | Directory | Adresář (složka) | Čtení |
| 32 | Archive | Změněno od poslední zálohy | Čtení i nastavení |
| 1024 | Alias | Odkaz nebo zástupce | Čtení |
| 2048 | Compressed | Komprimovaný soubor | Čtení |
Hodnota atributu Attributes je určena jako součet hodnot všech atributů, které se týkají daného souboru. Například skrytému souboru určenému pouze pro čtení bude odpovídat hodnota 3.
Pro zjištění konkrétního bitu se používá operátor And. Pokud bychom chtěli zjistit, zda je daný soubor určený pouze pro čtení a skrytý, použili bychom následující kód:
atributy = objFile.Attributes If (atributy And 3) Then Response.Write "Soubor je skrytý a je pouze pro čtení" Else Response.Write "Soubor není skrytý nebo není určen pouze pro čtení." End If
Tento atribut vrací datum a čas vytvoření souboru.
Tento atribut vrací datum a čas posledního přístupu k souboru.
Tento atribut obsahuje datum a čas poslední modifikace souboru.
Tento atribut vrací objekt Drive reprezentující disk, na němž je soubor umístěn.
Atribut Name vrací jméno souboru. Nastavením hodnoty atributu způsobíme přejmenování souboru.
Pokud k přejmenování souboru nemáme nastavena práva, dojde k chybě.
Tento atribut vrací objekt Folder, reprezentující složku, v níž je soubor umístěn.
Tento atribut vrací celou cestu k souboru. V cestě se mohou vyskytovat tzv. dlouhé názvy.
Tento atribut vrací krátké jméno souboru ve stylu operačního systému MS-DOS. Toto jméno má nejvýše 8 znaků, plus 3 znaky pro příponu (takzvaný formát 8.3). Pro soubor NejakySoubor.html bude tento atribut nejčastěji obsahovat hodnotu "Nejaky~1.htm". Číslo za vlnovkou se může lišit, pokud bude ve složce více souborů s jménem, které by se převedlo na stejné krátké jméno.
Tento atribut obsahuje absolutní cestu k souboru, která obsahuje pouze tzv. krátké názvy složek ve formátu 8.3 popsaném u předchozího atributu.
Atribut Size udává velikost souboru v bytech.
Tento atribut vrací textový popis typu souboru odvozený od jeho přípony. Používají se stejné popisy jako v dialogu Vlastnosti souboru ve Windows. Tyto popisy jsou uloženy v registrech systému.
Narozdíl od většiny běžných kolekcí má kolekce Files pouze dva atributy a žádné metody nebo události.
Kolekci Files můžeme získat přes atribut Files objektu Folder.
Udává počet souborů ve složce.
Vrací objekt File reprezentující soubor se zadaným jménem.
Objekt File pro soubor soubor.txt získáme příkazem:
Set objFile = objFolder.Files.Item("soubor.txt")