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. Klasa ta nie może być dziedziczona.

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 z głównych składowych FileInfo klasy.

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

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

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ąpień 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. Możesz użyć tych innych typów, aby dodatkowo manipulować plikiem. Aby uzyskać więcej informacji, zobacz określone FileInfo elementy członkowskie, takie jak Open, OpenRead, OpenText, CreateTextlub Create.

Domyślnie dla wszystkich użytkowników jest udzielany pełny dostęp do odczytu/zapisu do nowych plików.

W poniższej tabeli opisano wyliczenia 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, czy zastępowana, oraz czy żądania utworzenia istniejącego pliku powodują wyjątek.

Uwaga

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 dwukrotnie. 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 Universal Naming Convention (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 języku 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

FileInfo(String)

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

Pola

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

Attributes

Pobiera lub ustawia atrybuty dla 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 skoordynowanym uniwersalnym czasie (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 skoordynowanym uniwersalnym czasie (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ą linku znajdującego się w FullNamelokalizacji lub null jeśli to FileSystemInfo wystąpienie nie reprezentuje łącza.

(Odziedziczone po FileSystemInfo)
Name

Pobiera nazwę pliku.

UnixFileMode

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

(Odziedziczone po FileSystemInfo)

Metody

AppendText()

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

CopyTo(String)

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

CopyTo(String, Boolean)

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

Create()

Tworzy plik.

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 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 dany obiekt jest taki sam, jak bieżący obiekt.

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

Type Pobiera wartość 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 Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

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

(Odziedziczone po MarshalByRefObject)
MoveTo(String)

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

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.

Open(FileMode)

Otwiera plik w określonym trybie.

Open(FileMode, FileAccess)

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

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(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 UTF8, które odczytuje z istniejącego pliku tekstowego.

OpenWrite()

Tworzy polecenie tylko FileStreamdo zapisu.

Refresh()

Odświeża stan obiektu.

(Odziedziczone po FileSystemInfo)
Replace(String, String)

Zamienia zawartość określonego pliku na plik opisany przez bieżący FileInfo obiekt, usuwając oryginalny plik i tworząc kopię zapasową zastąpionego pliku.

Replace(String, String, Boolean)

Zamienia zawartość określonego pliku na plik opisany 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.

ResolveLinkTarget(Boolean)

Pobiera element docelowy określonego łącza.

(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 lub 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

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)

Zwraca informacje o zabezpieczeniach pliku.

GetAccessControl(FileInfo, AccessControlSections)

Zwraca informacje o zabezpieczeniach pliku.

SetAccessControl(FileInfo, FileSecurity)

Zmienia atrybuty zabezpieczeń istniejącego pliku.

Dotyczy

Zobacz też