FileInfo Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje vlastnosti a metody instancí pro vytváření, kopírování, odstraňování, přesouvání a otevírání souborů a pomáhá při vytváření FileStream objektů. Tato třída se nemůže dědit.
public ref class FileInfo sealed : System::IO::FileSystemInfo
public sealed class FileInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class FileInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileInfo : System.IO.FileSystemInfo
type FileInfo = class
inherit FileSystemInfo
[<System.Serializable>]
type FileInfo = class
inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileInfo = class
inherit FileSystemInfo
Public NotInheritable Class FileInfo
Inherits FileSystemInfo
- Dědičnost
- Dědičnost
- Atributy
Příklady
Následující příklad ukazuje některé hlavní členy FileInfo
třídy .
Při prvním načtení FileInfo vlastností volá metodu Refresh a ukládá informace o souboru do mezipaměti. Při dalších voláních musíte volat Refresh , abyste získali nejnovější kopii informací.
using namespace System;
using namespace System::IO;
int main()
{
String^ path = Path::GetTempFileName();
FileInfo^ fi1 = gcnew FileInfo( path );
//Create a file to write to.
StreamWriter^ sw = fi1->CreateText();
try
{
sw->WriteLine( "Hello" );
sw->WriteLine( "And" );
sw->WriteLine( "Welcome" );
}
finally
{
if ( sw )
delete (IDisposable^)sw;
}
//Open the file to read from.
StreamReader^ sr = fi1->OpenText();
try
{
String^ s = "";
while ( s = sr->ReadLine() )
{
Console::WriteLine( s );
}
}
finally
{
if ( sr )
delete (IDisposable^)sr;
}
try
{
String^ path2 = Path::GetTempFileName();
FileInfo^ fi2 = gcnew FileInfo( path2 );
//Ensure that the target does not exist.
fi2->Delete();
//Copy the file.
fi1->CopyTo( path2 );
Console::WriteLine( "{0} was copied to {1}.", path, path2 );
//Delete the newly created file.
fi2->Delete();
Console::WriteLine( "{0} was successfully deleted.", path2 );
}
catch ( Exception^ e )
{
Console::WriteLine( "The process failed: {0}", e );
}
}
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = Path.GetTempFileName();
var fi1 = new FileInfo(path);
// Create a file to write to.
using (StreamWriter sw = fi1.CreateText())
{
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}
// Open the file to read from.
using (StreamReader sr = fi1.OpenText())
{
var s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
try
{
string path2 = Path.GetTempFileName();
var fi2 = new FileInfo(path2);
// Ensure that the target does not exist.
fi2.Delete();
// Copy the file.
fi1.CopyTo(path2);
Console.WriteLine($"{path} was copied to {path2}.");
// Delete the newly created file.
fi2.Delete();
Console.WriteLine($"{path2} was successfully deleted.");
}
catch (Exception e)
{
Console.WriteLine($"The process failed: {e.ToString()}");
}
}
}
Imports System.IO
Public Class Test
Public Shared Sub Main()
Dim path1 As String = Path.GetTempFileName()
Dim path2 As String = Path.GetTempFileName()
Dim fi As New FileInfo(path1)
' Create a file to write to.
Using sw As StreamWriter = fi.CreateText()
sw.WriteLine("Hello")
sw.WriteLine("And")
sw.WriteLine("Welcome")
End Using
Try
' Open the file to read from.
Using sr As StreamReader = fi.OpenText()
Do While sr.Peek() >= 0
Console.WriteLine(sr.ReadLine())
Loop
End Using
Dim fi2 As New FileInfo(path2)
' Ensure that the target does not exist.
fi2.Delete()
' Copy the file.
fi.CopyTo(path2)
Console.WriteLine($"{path1} was copied to {path2}.")
' Delete the newly created file.
fi2.Delete()
Console.WriteLine($"{path2} was successfully deleted.")
Catch e As Exception
Console.WriteLine($"The process failed: {e.ToString()}.")
End Try
End Sub
End Class
Tento příklad vytvoří výstup podobný následujícímu.
Hello
And
Welcome
C:\Users\userName\AppData\Local\Temp\tmp70AB.tmp was copied to C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp.
C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp was successfully deleted.
Poznámky
FileInfo Třídu použijte pro typické operace, jako je kopírování, přesunutí, přejmenování, vytvoření, otevření, odstranění a připojení k souborům.
Pokud provádíte více operací se stejným souborem, může být efektivnější použít FileInfo metody instance místo odpovídajících statických File metod třídy, protože kontrola zabezpečení nebude vždy nutná.
Mnoho z těchto FileInfo metod vrací při vytváření nebo otevírání souborů jiné vstupně-výstupní typy. Tyto další typy můžete použít k další manipulaci se souborem. Další informace najdete v konkrétních FileInfo členech, jako Openjsou , OpenRead, OpenText, CreateTextnebo Create.
Ve výchozím nastavení je všem uživatelům udělen úplný přístup pro čtení a zápis k novým souborům.
Následující tabulka popisuje výčty, které se používají k přizpůsobení chování různých FileInfo metod.
Výčet | Description |
---|---|
FileAccess | Určuje přístup pro čtení a zápis k souboru. |
FileShare | Určuje úroveň přístupu povolenou pro soubor, který se už používá. |
FileMode | Určuje, jestli se obsah existujícího souboru zachová nebo přepíše a jestli požadavky na vytvoření existujícího souboru způsobí výjimku. |
Poznámka
Ve členech, které přijímají cestu jako vstupní řetězec, musí být tato cesta ve správném formátu, jinak je vyvolána výjimka. Pokud je například cesta plně kvalifikovaná, ale začíná mezerou, cesta se v metodách třídy neořízne. Proto je cesta poškozena a je vyvolána výjimka. Podobně cesta nebo kombinace cest nemůže být plně kvalifikovaná dvakrát. Například "c:\temp c:\windows" také ve většině případů vyvolá výjimku. Při použití metod, které přijímají řetězec cesty, se ujistěte, že jsou cesty správně vytvořené.
Ve členech, kteří přijímají cestu, může cesta odkazovat na soubor nebo pouze adresář. Zadaná cesta může také odkazovat na relativní cestu nebo cestu UNC (Universal Naming Convention) pro název serveru a sdílené složky. Přijatelné jsou například všechny následující cesty:
"c:\\MyDir\\MyFile.txt" v jazyce C# nebo "c:\MyDir\MyFile.txt" v jazyce Visual Basic.
"c:\\MyDir" v jazyce C# nebo "c:\MyDir" v jazyce Visual Basic.
"MyDir\\MySubdir" v jazyce C# nebo "MyDir\MySubDir" v jazyce Visual Basic.
"\\\MyServer\\MyShare" v jazyce C# nebo "\\MyServer\MyShare" v jazyce Visual Basic.
Třída FileInfo poskytuje následující vlastnosti, které umožňují načíst informace o souboru. Příklad použití jednotlivých vlastností najdete na stránkách vlastností.
Vlastnost Directory načte objekt, který představuje nadřazený adresář souboru.
Vlastnost DirectoryName načte úplnou cestu nadřazeného adresáře souboru.
Vlastnost Exists zkontroluje přítomnost souboru před tím, než s ním začne fungovat.
Vlastnost IsReadOnly načte nebo nastaví hodnotu, která určuje, zda lze soubor upravit.
Načte Length velikost souboru.
Načte Name název souboru.
Konstruktory
FileInfo(String) |
Inicializuje novou instanci FileInfo třídy, která funguje jako obálka pro cestu k souboru. |
Pole
FullPath |
Představuje plně kvalifikovanou cestu k adresáři nebo souboru. (Zděděno od FileSystemInfo) |
OriginalPath |
Cesta původně určená uživatelem, ať už relativní nebo absolutní. (Zděděno od FileSystemInfo) |
Vlastnosti
Attributes |
Získá nebo nastaví atributy pro aktuální soubor nebo adresář. (Zděděno od FileSystemInfo) |
CreationTime |
Získá nebo nastaví čas vytvoření aktuálního souboru nebo adresáře. (Zděděno od FileSystemInfo) |
CreationTimeUtc |
Získá nebo nastaví čas vytvoření aktuálního souboru nebo adresáře v koordinovaném univerzálním čase (UTC). (Zděděno od FileSystemInfo) |
Directory |
Získá instanci nadřazeného adresáře. |
DirectoryName |
Získá řetězec představující úplnou cestu k adresáři. |
Exists |
Získá hodnotu označující, zda soubor existuje. |
Extension |
Získá příponu část názvu souboru, včetně počáteční tečky |
FullName |
Získá úplnou cestu k adresáři nebo souboru. (Zděděno od FileSystemInfo) |
IsReadOnly |
Získá nebo nastaví hodnotu, která určuje, zda je aktuální soubor jen pro čtení. |
LastAccessTime |
Získá nebo nastaví čas posledního přístupu k aktuálnímu souboru nebo adresáři. (Zděděno od FileSystemInfo) |
LastAccessTimeUtc |
Získá nebo nastaví čas v koordinovaném univerzálním čase (UTC), kdy byl poslední přístup k aktuálnímu souboru nebo adresáři. (Zděděno od FileSystemInfo) |
LastWriteTime |
Získá nebo nastaví čas, kdy byl aktuální soubor nebo adresář naposledy zapsán do. (Zděděno od FileSystemInfo) |
LastWriteTimeUtc |
Získá nebo nastaví čas v koordinovaném univerzálním čase (UTC), kdy byl aktuální soubor nebo adresář naposledy zapsán do. (Zděděno od FileSystemInfo) |
Length |
Získá velikost aktuálního souboru v bajtech. |
LinkTarget |
Získá cílovou cestu odkazu umístěného v FullName, nebo |
Name |
Získá název souboru. |
UnixFileMode |
Získá nebo nastaví režim souborů systému Unix pro aktuální soubor nebo adresář. (Zděděno od FileSystemInfo) |
Metody
AppendText() |
Vytvoří StreamWriter , který připojí text k souboru reprezentované touto instancí objektu FileInfo. |
CopyTo(String) |
Zkopíruje existující soubor do nového souboru a zakáže přepsání existujícího souboru. |
CopyTo(String, Boolean) |
Zkopíruje existující soubor do nového souboru a umožní přepsání existujícího souboru. |
Create() |
Vytvoří soubor. |
CreateAsSymbolicLink(String) |
Vytvoří symbolický odkaz umístěný v FullName , který odkazuje na zadaný |
CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy sloužící ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
CreateText() |
Vytvoří soubor StreamWriter , který zapíše nový textový soubor. |
Decrypt() |
Dešifruje soubor zašifrovaný aktuálním účtem pomocí metody .Encrypt() |
Delete() |
Trvale odstraní soubor. |
Encrypt() |
Zašifruje soubor tak, aby ho mohl dešifrovat pouze účet použitý k zašifrování souboru. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetAccessControl() |
FileSecurity Získá objekt, který zapouzdřuje položky seznamu řízení přístupu (ACL) pro soubor popsaný aktuálním FileInfo objektem. |
GetAccessControl(AccessControlSections) |
FileSecurity Získá objekt, který zapouzdřuje zadaný typ položky seznamu řízení přístupu (ACL) pro soubor popsaný aktuálním FileInfo objektem. |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetLifetimeService() |
Zastaralé.
Načte aktuální životnost objektu služby, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
Zastaralé.
Nastaví objekt s SerializationInfo názvem souboru a dalšími informacemi o výjimce. (Zděděno od FileSystemInfo) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
InitializeLifetimeService() |
Zastaralé.
Získá životnost objektu služby, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
MoveTo(String) |
Přesune zadaný soubor do nového umístění s možností zadat nový název souboru. |
MoveTo(String, Boolean) |
Přesune zadaný soubor do nového umístění a poskytne možnosti pro zadání nového názvu souboru a přepsání cílového souboru, pokud již existuje. |
Open(FileMode) |
Otevře soubor v zadaném režimu. |
Open(FileMode, FileAccess) |
Otevře soubor v zadaném režimu s přístupem pro čtení, zápis nebo čtení a zápis. |
Open(FileMode, FileAccess, FileShare) |
Otevře soubor v zadaném režimu s přístupem pro čtení, zápis nebo čtení/zápis a zadanou možností sdílení. |
Open(FileStreamOptions) |
Inicializuje novou instanci FileStream třídy se zadaným režimem vytváření, čtení/zápis a sdílení oprávnění, přístup ostatní FileStreams mohou mít ke stejnému souboru, velikost vyrovnávací paměti, další možnosti souboru a velikost přidělení. |
OpenRead() |
Vytvoří jen pro čtení FileStream. |
OpenText() |
Vytvoří kód s kódováním StreamReader UTF8, který čte z existujícího textového souboru. |
OpenWrite() |
Vytvoří pouze FileStreamzápis . |
Refresh() |
Aktualizuje stav objektu. (Zděděno od FileSystemInfo) |
Replace(String, String) |
Nahradí obsah zadaného souboru souborem popsaným aktuálním FileInfo objektem, odstraní původní soubor a vytvoří zálohu nahrazeného souboru. |
Replace(String, String, Boolean) |
Nahradí obsah zadaného souboru souborem popsaným aktuálním FileInfo objektem, odstraní původní soubor a vytvoří zálohu nahrazeného souboru. Určuje také, zda se mají ignorovat chyby sloučení. |
ResolveLinkTarget(Boolean) |
Získá cíl zadaného odkazu. (Zděděno od FileSystemInfo) |
SetAccessControl(FileSecurity) |
Použije položky seznamu řízení přístupu (ACL) popsané objektem FileSecurity na soubor popsaný aktuálním FileInfo objektem. |
ToString() |
Vrátí původní cestu, která byla předána konstruktoru FileInfo . FullName Pro úplnou cestu nebo název souboru použijte vlastnost nebo Name . |
ToString() |
Vrátí původní cestu. FullNameName Pro úplnou cestu nebo název souboru nebo adresáře použijte vlastnosti nebo . (Zděděno od FileSystemInfo) |
Metody rozšíření
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Vytvoří nový datový proud souboru a zajistí jeho vytvoření se zadanými vlastnostmi a nastavením zabezpečení. |
GetAccessControl(FileInfo) |
Vrátí informace o zabezpečení souboru. |
GetAccessControl(FileInfo, AccessControlSections) |
Vrátí informace o zabezpečení souboru. |
SetAccessControl(FileInfo, FileSecurity) |
Změní atributy zabezpečení existujícího souboru. |
Platí pro
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro