Udostępnij za pośrednictwem


FileInfo Klasa

Definicja

Udostępnia właściwości i metody wystąpień do tworzenia, kopiowania, usuwania, przenoszenia i otwierania plików oraz ułatwia tworzenie FileStream obiektów. Tej klasy nie można dziedziczyć.

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
Dziedziczenie
Dziedziczenie
Atrybuty

Przykłady

W poniższym przykładzie pokazano niektóre główne elementy członkowskie FileInfo klasy.

Po pierwszym pobraniu FileInfo właściwości wywołuje metodę Refresh i buforuje informacje o pliku. W kolejnych wywołaniach należy wywołać metodę Refresh , aby uzyskać najnowszą kopię informacji.

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

W tym przykładzie są generowane dane wyjściowe podobne do poniższych.

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.

Uwagi

FileInfo Użyj klasy dla typowych operacji, takich jak kopiowanie, przenoszenie, zmienianie nazwy, tworzenie, otwieranie, usuwanie i dołączanie do plików.

Jeśli wykonujesz wiele operacji na tym samym pliku, bardziej wydajne może być użycie FileInfo metod wystąpienia zamiast odpowiednich metod File statycznych klasy, ponieważ sprawdzanie zabezpieczeń nie zawsze będzie konieczne.

FileInfo Wiele metod zwraca inne typy we/wy podczas tworzenia lub otwierania plików. Za pomocą tych innych typów można dalej manipulować plikiem. Aby uzyskać więcej informacji, zobacz określone FileInfo elementy członkowskie, takie jak Open, OpenRead, OpenText, CreateTextlub Create.

Domyślnie pełny dostęp do odczytu/zapisu do nowych plików jest przyznawany wszystkim użytkownikom.

W poniższej tabeli opisano wyliczenia, które są używane do dostosowywania zachowania różnych FileInfo metod.

Wyliczenie Opis
FileAccess Określa dostęp do odczytu i zapisu do pliku.
FileShare Określa poziom dostępu dozwolony dla pliku, który jest już używany.
FileMode Określa, czy zawartość istniejącego pliku jest zachowywana lub zastępowana oraz czy żądania utworzenia istniejącego pliku powodują wyjątek.

Nuta

W elementach członkowskich, które akceptują ścieżkę jako ciąg wejściowy, ta ścieżka musi być poprawnie sformułowana lub zgłaszany jest wyjątek. Jeśli na przykład ścieżka jest w pełni kwalifikowana, ale zaczyna się od spacji, ścieżka nie jest przycinana w metodach klasy. W związku z tym ścieżka jest źle sformułowana i zgłaszany jest wyjątek. Podobnie ścieżka lub kombinacja ścieżek nie może być w pełni kwalifikowana dwa razy. Na przykład "c:\temp c:\windows" również zgłasza wyjątek w większości przypadków. Upewnij się, że ścieżki są prawidłowo sformułowane podczas używania metod, które akceptują ciąg ścieżki.

W elementach członkowskich, które akceptują ścieżkę, ścieżka może odwoływać się do pliku lub tylko katalogu. Określona ścieżka może również odwoływać się do ścieżki względnej lub ścieżki uniwersalnej konwencji nazewnictwa (UNC) dla serwera i nazwy udziału. Na przykład wszystkie następujące ścieżki są dopuszczalne:

  • "c:\\MyDir\\MyFile.txt" w języku C# lub "c:\MyDir\MyFile.txt" w Visual Basic.

  • "c:\MyDir" w języku C#lub "c:\MyDir" w Visual Basic.

  • "MyDir\\MySubdir" w języku C# lub "MyDir\MySubDir" w Visual Basic.

  • "\\\MyServer\\MyShare" w języku C#lub "\MyServer\MyShare" w Visual Basic.

Klasa FileInfo udostępnia następujące właściwości, które umożliwiają pobieranie informacji o pliku. Aby zapoznać się z przykładem używania każdej właściwości, zobacz strony właściwości.

  • Właściwość Directory pobiera obiekt reprezentujący katalog nadrzędny pliku.

  • Właściwość DirectoryName pobiera pełną ścieżkę katalogu nadrzędnego pliku.

  • Właściwość Exists sprawdza obecność pliku przed jego uruchomieniem.

  • Właściwość IsReadOnly pobiera lub ustawia wartość określającą, czy można zmodyfikować plik.

  • Element Length pobiera rozmiar pliku.

  • Element Name pobiera nazwę pliku.

Konstruktory

Nazwa Opis
FileInfo(String)

Inicjuje FileInfo nowe wystąpienie klasy, które działa jako otoka dla ścieżki pliku.

Pola

Nazwa Opis
FullPath

Reprezentuje w pełni kwalifikowaną ścieżkę katalogu lub pliku.

(Odziedziczone po FileSystemInfo)
OriginalPath

Ścieżka pierwotnie określona przez użytkownika, niezależnie od tego, czy jest względna, czy bezwzględna.

(Odziedziczone po FileSystemInfo)

Właściwości

Nazwa Opis
Attributes

Pobiera lub ustawia atrybuty bieżącego pliku lub katalogu.

(Odziedziczone po FileSystemInfo)
CreationTime

Pobiera lub ustawia czas tworzenia bieżącego pliku lub katalogu.

(Odziedziczone po FileSystemInfo)
CreationTimeUtc

Pobiera lub ustawia czas tworzenia w uniwersalnym czasie koordynowanym (UTC) bieżącego pliku lub katalogu.

(Odziedziczone po FileSystemInfo)
Directory

Pobiera wystąpienie katalogu nadrzędnego.

DirectoryName

Pobiera ciąg reprezentujący pełną ścieżkę katalogu.

Exists

Pobiera wartość wskazującą, czy plik istnieje.

Extension

Pobiera część rozszerzenia nazwy pliku, w tym kropkę wiodącą . , nawet jeśli jest to cała nazwa pliku lub pusty ciąg, jeśli nie ma rozszerzenia.

(Odziedziczone po FileSystemInfo)
FullName

Pobiera pełną ścieżkę katalogu lub pliku.

(Odziedziczone po FileSystemInfo)
IsReadOnly

Pobiera lub ustawia wartość, która określa, czy bieżący plik jest tylko do odczytu.

LastAccessTime

Pobiera lub ustawia czas ostatniego uzyskania dostępu do bieżącego pliku lub katalogu.

(Odziedziczone po FileSystemInfo)
LastAccessTimeUtc

Pobiera lub ustawia czas w uniwersalnym czasie koordynowanym (UTC), do którego ostatnio uzyskiwano dostęp do bieżącego pliku lub katalogu.

(Odziedziczone po FileSystemInfo)
LastWriteTime

Pobiera lub ustawia czas ostatniego zapisania bieżącego pliku lub katalogu.

(Odziedziczone po FileSystemInfo)
LastWriteTimeUtc

Pobiera lub ustawia czas, w skoordynowanym uniwersalnym czasie (UTC), kiedy bieżący plik lub katalog został ostatnio zapisany.

(Odziedziczone po FileSystemInfo)
Length

Pobiera rozmiar bieżącego pliku w bajtach.

LinkTarget

Pobiera ścieżkę docelową łącza znajdującego się w FullNameobiekcie lub null jeśli to FileSystemInfo wystąpienie nie reprezentuje łącza.

(Odziedziczone po FileSystemInfo)
Name

Pobiera nazwę pliku.

UnixFileMode

Pobiera lub ustawia tryb plików systemu Unix dla bieżącego pliku lub katalogu.

(Odziedziczone po FileSystemInfo)

Metody

Nazwa Opis
AppendText()

Tworzy obiekt StreamWriter , który dołącza tekst do pliku reprezentowanego przez to wystąpienie obiektu FileInfo.

CopyTo(String, Boolean)

Kopiuje istniejący plik do nowego pliku, co umożliwia zastąpienie istniejącego pliku.

CopyTo(String)

Kopiuje istniejący plik do nowego pliku, co uniemożliwi zastąpienie istniejącego pliku.

Create()

Tworzy plik.

CreateAsHardLink(String)

Udostępnia właściwości i metody wystąpień do tworzenia, kopiowania, usuwania, przenoszenia i otwierania plików oraz ułatwia tworzenie FileStream obiektów. Tej klasy nie można dziedziczyć.

CreateAsSymbolicLink(String)

Tworzy link symboliczny znajdujący się w FullName tym miejscu wskazujący określony pathToTargetelement .

(Odziedziczone po FileSystemInfo)
CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
CreateText()

Tworzy obiekt StreamWriter , który zapisuje nowy plik tekstowy.

Decrypt()

Odszyfrowuje plik, który został zaszyfrowany przez bieżące konto przy użyciu Encrypt() metody .

Delete()

Trwale usuwa plik.

Encrypt()

Szyfruje plik tak, aby tylko konto używane do szyfrowania pliku mógł go odszyfrować.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
GetAccessControl()

FileSecurity Pobiera obiekt, który hermetyzuje wpisy listy kontroli dostępu (ACL) dla pliku opisanego przez bieżący FileInfo obiekt.

GetAccessControl(AccessControlSections)

FileSecurity Pobiera obiekt, który hermetyzuje określony typ wpisów listy kontroli dostępu (ACL) dla pliku opisanego przez bieżący FileInfo obiekt.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Przestarzałe.

SerializationInfo Ustawia obiekt z nazwą pliku i dodatkowymi informacjami o wyjątku.

(Odziedziczone po FileSystemInfo)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
MoveTo(String, Boolean)

Przenosi określony plik do nowej lokalizacji, udostępniając opcje określania nowej nazwy pliku i zastępowania pliku docelowego, jeśli już istnieje.

MoveTo(String)

Przenosi określony plik do nowej lokalizacji, podając opcję określenia nowej nazwy pliku.

Open(FileMode, FileAccess, FileShare)

Otwiera plik w określonym trybie z dostępem do odczytu, zapisu lub odczytu/zapisu oraz określoną opcją udostępniania.

Open(FileMode, FileAccess)

Otwiera plik w określonym trybie z dostępem do odczytu, zapisu lub odczytu/zapisu.

Open(FileMode)

Otwiera plik w określonym trybie.

Open(FileStreamOptions)

Inicjuje nowe wystąpienie FileStream klasy z określonym trybem tworzenia, uprawnieniami do odczytu/zapisu i udostępniania, dostęp do innych strumieni plików może mieć ten sam plik, rozmiar buforu, dodatkowe opcje pliku i rozmiar alokacji.

OpenRead()

Tworzy obiekt tylko do FileStreamodczytu.

OpenText()

Tworzy kodowanie StreamReader z kodowaniem UTF8 odczytanym z istniejącego pliku tekstowego.

OpenWrite()

Tworzy polecenie tylko FileStreamdo zapisu.

Refresh()

Odświeża stan obiektu.

(Odziedziczone po FileSystemInfo)
Replace(String, String, Boolean)

Zastępuje zawartość określonego pliku plikiem opisanym przez bieżący FileInfo obiekt, usuwając oryginalny plik i tworząc kopię zapasową zastąpionego pliku. Określa również, czy ignorować błędy scalania.

Replace(String, String)

Zastępuje zawartość określonego pliku plikiem opisanym przez bieżący FileInfo obiekt, usuwając oryginalny plik i tworząc kopię zapasową zastąpionego pliku.

ResolveLinkTarget(Boolean)

Pobiera element docelowy określonego linku.

(Odziedziczone po FileSystemInfo)
SetAccessControl(FileSecurity)

Stosuje wpisy listy kontroli dostępu (ACL) opisane przez FileSecurity obiekt do pliku opisanego przez bieżący FileInfo obiekt.

ToString()

Zwraca oryginalną ścieżkę przekazaną do konstruktora FileInfo . FullName Użyj właściwości or Name dla pełnej ścieżki lub nazwy pliku.

ToString()

Zwraca oryginalną ścieżkę. FullName Użyj właściwości lub Name dla pełnej ścieżki lub nazwy pliku/katalogu.

(Odziedziczone po FileSystemInfo)

Metody rozszerzania

Nazwa Opis
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

Tworzy nowy strumień plików, upewniając się, że jest tworzony z określonymi właściwościami i ustawieniami zabezpieczeń.

GetAccessControl(FileInfo, AccessControlSections)

Zwraca informacje o zabezpieczeniach pliku.

GetAccessControl(FileInfo)

Zwraca informacje o zabezpieczeniach pliku.

SetAccessControl(FileInfo, FileSecurity)

Zmienia atrybuty zabezpieczeń istniejącego pliku.

Dotyczy

Zobacz też