FileInfo Klasa

Definicja

Udostępnia właściwości i metody wystąpień do tworzenia, kopiowania, usuwania, przechodzenia i otwierania plików oraz ułatwia tworzenie FileStream obiektów.Provides properties and instance methods for the creation, copying, deletion, moving, and opening of files, and aids in the creation of FileStream objects. Klasa ta nie może być dziedziczona.This class cannot be inherited.

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

Poniższy przykład demonstruje niektóre główne elementy członkowskie FileInfo klasy.The following example demonstrates some of the main members of the FileInfo class.

Po pierwszym pobraniu właściwości FileInfo wywołuje Refresh metodę i buforuje informacje o pliku.When the properties are first retrieved, FileInfo calls the Refresh method and caches information about the file. W przypadku kolejnych wywołań należy wywołać metodę, Refresh Aby uzyskać najnowszą kopię informacji.On subsequent calls, you must call Refresh to get the latest copy of the information.

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

Ten przykład generuje dane wyjściowe podobne do poniższych.This example produces output similar to the following.

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

Użyj FileInfo klasy dla typowych operacji, takich jak kopiowanie, przesuwanie, zmiana nazwy, tworzenie, otwieranie, usuwanie i dołączanie do plików.Use the FileInfo class for typical operations such as copying, moving, renaming, creating, opening, deleting, and appending to files.

Jeśli wykonujesz wiele operacji w tym samym pliku, może być bardziej wydajne użycie FileInfo metod wystąpienia zamiast odpowiednich metod statycznych File klasy, ponieważ sprawdzanie zabezpieczeń nie zawsze jest konieczne.If you are performing multiple operations on the same file, it can be more efficient to use FileInfo instance methods instead of the corresponding static methods of the File class, because a security check will not always be necessary.

Wiele FileInfo metod zwraca inne typy we/wy podczas tworzenia lub otwierania plików.Many of the FileInfo methods return other I/O types when you create or open files. Możesz użyć tych innych typów do dalszej manipulacji plikiem.You can use these other types to further manipulate a file. Aby uzyskać więcej informacji, zobacz określone FileInfo elementy członkowskie, takie jak,,, Open OpenRead OpenText CreateText lub Create .For more information, see specific FileInfo members such as Open, OpenRead, OpenText, CreateText, or Create.

Domyślnie pełny dostęp do odczytu i zapisu do nowych plików jest udzielany wszystkim użytkownikom.By default, full read/write access to new files is granted to all users.

W poniższej tabeli opisano wyliczenia, które są używane do dostosowywania zachowania różnych FileInfo metod.The following table describes the enumerations that are used to customize the behavior of various FileInfo methods.

WyliczenieEnumeration OpisDescription
FileAccess Określa dostęp do odczytu i zapisu do pliku.Specifies read and write access to a file.
FileShare Określa poziom dostępu dozwolony dla pliku, który jest już używany.Specifies the level of access permitted for a file that is already in use.
FileMode Określa, czy zawartość istniejącego pliku jest zachowywana, zastępowana, oraz czy żądania utworzenia istniejącego pliku powodują wystąpienie wyjątku.Specifies whether the contents of an existing file are preserved or overwritten, and whether requests to create an existing file cause an exception.

Uwaga

W elementach członkowskich, które akceptują ścieżkę jako ciąg wejściowy, ta ścieżka musi być poprawnie sformułowana lub występuje wyjątek.In members that accept a path as an input string, that path must be well-formed or an exception is raised. Na przykład jeśli ścieżka jest w pełni kwalifikowana, ale zaczyna się od spacji, ścieżka nie jest przycięta w metodach klasy.For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. W związku z tym ścieżka jest źle sformułowana i zgłaszany jest wyjątek.Therefore, the path is malformed and an exception is raised. Podobnie ścieżka lub kombinacja ścieżek nie mogą być w pełni kwalifikowane dwukrotnie.Similarly, a path or a combination of paths cannot be fully qualified twice. Na przykład "c:\Temp c:\Windows" wywołuje również wyjątek w większości przypadków.For example, "c:\temp c:\windows" also raises an exception in most cases. Upewnij się, że ścieżki są poprawnie sformułowane podczas korzystania z metod, które akceptują ciąg ścieżki.Ensure that your paths are well-formed when using methods that accept a path string.

W elementach członkowskich, które akceptują ścieżkę, ścieżka może odwoływać się do pliku lub tylko katalogu.In members that accept a path, the path can refer to a file or just a directory. 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.The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. Na przykład wszystkie następujące są dopuszczalne ścieżki:For example, all the following are acceptable paths:

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

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

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

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

FileInfoKlasa zawiera następujące właściwości, które umożliwiają pobieranie informacji o pliku.The FileInfo class provides the following properties that enable you to retrieve information about a file. Aby zapoznać się z przykładem użycia każdej właściwości, zobacz strony właściwości.For an example of how to use each property, see the property pages.

  • DirectoryWłaściwość pobiera obiekt, który reprezentuje katalog nadrzędny pliku.The Directory property retrieves an object that represents the parent directory of a file.

  • DirectoryNameWłaściwość pobiera pełną ścieżkę katalogu nadrzędnego pliku.The DirectoryName property retrieves the full path of the parent directory of a file.

  • ExistsWłaściwość sprawdza obecność pliku przed rozpoczęciem działania.The Exists property checks for the presence of a file before operating on it.

  • IsReadOnlyWłaściwość pobiera lub ustawia wartość określającą, czy plik może być modyfikowany.The IsReadOnly property retrieves or sets a value that specifies whether a file can be modified.

  • LengthPobiera rozmiar pliku.The Length retrieves the size of a file.

  • NamePobiera nazwę pliku.The Name retrieves the name of a file.

Konstruktory

FileInfo(String)

Inicjuje nowe wystąpienie FileInfo klasy, które działa jako otoka dla ścieżki pliku.Initializes a new instance of the FileInfo class, which acts as a wrapper for a file path.

Pola

FullPath

Reprezentuje w pełni kwalifikowaną ścieżkę katalogu lub pliku.Represents the fully qualified path of the directory or file.

(Odziedziczone po FileSystemInfo)
OriginalPath

Ścieżka pierwotnie określona przez użytkownika, względna lub bezwzględna.The path originally specified by the user, whether relative or absolute.

(Odziedziczone po FileSystemInfo)

Właściwości

Attributes

Pobiera lub ustawia atrybuty dla bieżącego pliku lub katalogu.Gets or sets the attributes for the current file or directory.

(Odziedziczone po FileSystemInfo)
CreationTime

Pobiera lub ustawia godzinę utworzenia bieżącego pliku lub katalogu.Gets or sets the creation time of the current file or directory.

(Odziedziczone po FileSystemInfo)
CreationTimeUtc

Pobiera lub ustawia czas utworzenia (w uniwersalnym czasie koordynowanym (UTC) bieżącego pliku lub katalogu.Gets or sets the creation time, in coordinated universal time (UTC), of the current file or directory.

(Odziedziczone po FileSystemInfo)
Directory

Pobiera wystąpienie katalogu nadrzędnego.Gets an instance of the parent directory.

DirectoryName

Pobiera ciąg reprezentujący pełną ścieżkę katalogu.Gets a string representing the directory's full path.

Exists

Pobiera wartość wskazującą, czy plik istnieje.Gets a value indicating whether a file exists.

Extension

Pobiera ciąg reprezentujący część rozszerzenia pliku.Gets the string representing the extension part of the file.

(Odziedziczone po FileSystemInfo)
FullName

Pobiera pełną ścieżkę katalogu lub pliku.Gets the full path of the directory or file.

(Odziedziczone po FileSystemInfo)
IsReadOnly

Pobiera lub ustawia wartość określającą, czy bieżący plik jest tylko do odczytu.Gets or sets a value that determines if the current file is read only.

LastAccessTime

Pobiera lub ustawia godzinę ostatniego dostępu do bieżącego pliku lub katalogu.Gets or sets the time the current file or directory was last accessed.

(Odziedziczone po FileSystemInfo)
LastAccessTimeUtc

Pobiera lub ustawia godzinę ostatniego dostępu do aktualnego pliku lub katalogu w formacie UTC (Coordinated Universal Time).Gets or sets the time, in coordinated universal time (UTC), that the current file or directory was last accessed.

(Odziedziczone po FileSystemInfo)
LastWriteTime

Pobiera lub ustawia godzinę ostatniego zapisania bieżącego pliku lub katalogu.Gets or sets the time when the current file or directory was last written to.

(Odziedziczone po FileSystemInfo)
LastWriteTimeUtc

Pobiera lub ustawia godzinę, w uniwersalnym czasie koordynowanym (UTC), gdy bieżący plik lub katalog został ostatnio zapisany.Gets or sets the time, in coordinated universal time (UTC), when the current file or directory was last written to.

(Odziedziczone po FileSystemInfo)
Length

Pobiera rozmiar bieżącego pliku w bajtach.Gets the size, in bytes, of the current file.

Name

Pobiera nazwę pliku.Gets the name of the file.

Metody

AppendText()

Tworzy obiekt StreamWriter , który dołącza tekst do pliku reprezentowanego przez to wystąpienie FileInfo .Creates a StreamWriter that appends text to the file represented by this instance of the FileInfo.

CopyTo(String)

Kopiuje istniejący plik do nowego pliku, nie zezwalając na zastępowanie istniejącego pliku.Copies an existing file to a new file, disallowing the overwriting of an existing file.

CopyTo(String, Boolean)

Kopiuje istniejący plik do nowego pliku, umożliwiając zastępowanie istniejącego pliku.Copies an existing file to a new file, allowing the overwriting of an existing file.

Create()

Tworzy plik.Creates a file.

CreateObjRef(Type)

Tworzy obiekt, który zawiera wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikacji z obiektem zdalnym.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Odziedziczone po MarshalByRefObject)
CreateText()

Tworzy StreamWriter nowy plik tekstowy.Creates a StreamWriter that writes a new text file.

Decrypt()

Odszyfrowuje plik, który został zaszyfrowany przez bieżące konto przy użyciu Encrypt() metody.Decrypts a file that was encrypted by the current account using the Encrypt() method.

Delete()

Trwale usuwa plik.Permanently deletes a file.

Encrypt()

Szyfruje plik, tak aby tylko konto użyte do zaszyfrowania pliku może je odszyfrować.Encrypts a file so that only the account used to encrypt the file can decrypt it.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetAccessControl()

Pobiera FileSecurity obiekt, który hermetyzuje wpisy listy kontroli dostępu (ACL) dla pliku opisanego przez bieżący FileInfo obiekt.Gets a FileSecurity object that encapsulates the access control list (ACL) entries for the file described by the current FileInfo object.

GetAccessControl(AccessControlSections)

Pobiera FileSecurity obiekt, który hermetyzuje określony typ wpisów listy kontroli dostępu (ACL) dla pliku opisanego przez bieżący FileInfo obiekt.Gets a FileSecurity object that encapsulates the specified type of access control list (ACL) entries for the file described by the current FileInfo object.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetLifetimeService()
Nieaktualne.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Odziedziczone po MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Ustawia SerializationInfo obiekt z nazwą pliku i dodatkowymi informacjami o wyjątku.Sets the SerializationInfo object with the file name and additional exception information.

(Odziedziczone po FileSystemInfo)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
InitializeLifetimeService()
Nieaktualne.

Uzyskuje obiekt usługi istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.Obtains a lifetime service object to control the lifetime policy for this instance.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy skróconą kopię bieżącego MarshalByRefObject obiektu.Creates a shallow copy of the current MarshalByRefObject object.

(Odziedziczone po MarshalByRefObject)
MoveTo(String)

Przenosi określony plik do nowej lokalizacji, podając opcję określającą nową nazwę pliku.Moves a specified file to a new location, providing the option to specify a new file name.

MoveTo(String, Boolean)

Przenosi określony plik do nowej lokalizacji, podając opcje, aby określić nową nazwę pliku i zastąpić plik docelowy, jeśli już istnieje.Moves a specified file to a new location, providing the options to specify a new file name and to overwrite the destination file if it already exists.

Open(FileMode)

Otwiera plik w określonym trybie.Opens a file in the specified mode.

Open(FileMode, FileAccess)

Otwiera plik w określonym trybie z dostępem odczyt, zapis lub odczyt/zapis.Opens a file in the specified mode with read, write, or read/write access.

Open(FileMode, FileAccess, FileShare)

Otwiera plik w określonym trybie z dostępem do odczytu, zapisu lub odczytu/zapisu oraz z określoną opcją udostępniania.Opens a file in the specified mode with read, write, or read/write access and the specified sharing option.

OpenRead()

Tworzy tylko do odczytu FileStream .Creates a read-only FileStream.

OpenText()

Tworzy StreamReader kodowanie w języku UTF8, które odczytuje z istniejącego pliku tekstowego.Creates a StreamReader with UTF8 encoding that reads from an existing text file.

OpenWrite()

Tworzy tylko do zapisu FileStream .Creates a write-only FileStream.

Refresh()

Odświeża stan obiektu.Refreshes the state of the object.

(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ępowanego pliku.Replaces the contents of a specified file with the file described by the current FileInfo object, deleting the original file, and creating a backup of the replaced file.

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ępowanego pliku.Replaces the contents of a specified file with the file described by the current FileInfo object, deleting the original file, and creating a backup of the replaced file. Określa również, czy ignorować błędy scalania.Also specifies whether to ignore merge errors.

SetAccessControl(FileSecurity)

Stosuje wpisy listy kontroli dostępu (ACL) opisane przez FileSecurity obiekt do pliku opisanego przez bieżący FileInfo obiekt.Applies access control list (ACL) entries described by a FileSecurity object to the file described by the current FileInfo object.

ToString()

Zwraca ścieżkę jako ciąg.Returns the path as a string. Użyj Name Właściwości pełnej ścieżki.Use the Name property for the full path.

Metody rozszerzania

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

Tworzy nowy strumień pliku, upewniając się, że został utworzony przy użyciu określonych właściwości i ustawień zabezpieczeń.Creates a new file stream, ensuring it is created with the specified properties and security settings.

GetAccessControl(FileInfo)

Zwraca informacje o zabezpieczeniach pliku.Returns the security information of a file.

GetAccessControl(FileInfo, AccessControlSections)

Zwraca informacje o zabezpieczeniach pliku.Returns the security information of a file.

SetAccessControl(FileInfo, FileSecurity)

Zmienia atrybuty zabezpieczeń istniejącego pliku.Changes the security attributes of an existing file.

Dotyczy

Zobacz też