FileInfo Класс

Определение

Предоставляет свойства и методы экземпляра для создания, копирования, удаления, перемещения и открытия файлов, а также позволяет создавать объекты FileStream.Provides properties and instance methods for the creation, copying, deletion, moving, and opening of files, and aids in the creation of FileStream objects. Этот класс не наследуется.This class cannot be inherited.

public ref class FileInfo sealed : System::IO::FileSystemInfo
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class FileInfo : System.IO.FileSystemInfo
type FileInfo = class
    inherit FileSystemInfo
Public NotInheritable Class FileInfo
Inherits FileSystemInfo
Наследование
Атрибуты

Примеры

В следующем примере показаны некоторые основные члены FileInfo класса.The following example demonstrates some of the main members of the FileInfo class.

При первом извлечении FileInfo свойств Refresh вызывает метод и кэширует сведения о файле.When the properties are first retrieved, FileInfo calls the Refresh method and caches information about the file. При последующих вызовах необходимо вызвать Refresh , чтобы получить последнюю копию информации.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

В этом примере создаются выходные данные, аналогичные приведенным ниже.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.  

Комментарии

Используйте класс FileInfo для выполнения типичных операций, таких как копирование, перемещение, переименование, создание, открытие, удаление и добавление в файлы.Use the FileInfo class for typical operations such as copying, moving, renaming, creating, opening, deleting, and appending to files.

При выполнении нескольких операций над одним и тем же файлом может оказаться более эффективным использование FileInfo методов экземпляра вместо соответствующих статических методов File класса, поскольку проверка безопасности не всегда требуется.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.

Многие из FileInfo методов возвращают другие типы ввода-вывода при создании или открытии файлов.Many of the FileInfo methods return other I/O types when you create or open files. Эти другие типы можно использовать для дальнейшего управления файлом.You can use these other types to further manipulate a file. Дополнительные сведения см. в разделе FileInfo определенные элементы, Openтакие OpenReadкак OpenText, CreateText,, Createили.For more information, see specific FileInfo members such as Open, OpenRead, OpenText, CreateText, or Create.

По умолчанию всем пользователям предоставляется полный доступ на чтение и запись к новым файлам.By default, full read/write access to new files is granted to all users.

В следующей таблице описаны перечисления, используемые для настройки поведения различных FileInfo методов.The following table describes the enumerations that are used to customize the behavior of various FileInfo methods.

ПеречислениеEnumeration ОписаниеDescription
FileAccess Указывает доступ к файлу для чтения и записи.Specifies read and write access to a file.
FileShare Указывает уровень доступа, разрешенный для уже используемого файла.Specifies the level of access permitted for a file that is already in use.
FileMode Указывает, будет ли содержимое существующего файла сохранено или перезаписано, и должны ли запросы на создание существующего файла вызывать исключение.Specifies whether the contents of an existing file are preserved or overwritten, and whether requests to create an existing file cause an exception.

Примечание

В членах, принимающих путь в качестве входной строки, этот путь должен иметь правильный формат или возникнет исключение.In members that accept a path as an input string, that path must be well-formed or an exception is raised. Например, если путь является полным, но начинается с пробела, путь не усекается в методах класса.For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. Поэтому путь имеет неправильный формат и возникает исключение.Therefore, the path is malformed and an exception is raised. Аналогично, путь или сочетание путей не могут быть полными и дважды.Similarly, a path or a combination of paths cannot be fully qualified twice. Например, "c:\temp c:\Windows" также вызывает исключение в большинстве случаев.For example, "c:\temp c:\windows" also raises an exception in most cases. При использовании методов, принимающих строку пути, убедитесь, что пути имеют правильный формат.Ensure that your paths are well-formed when using methods that accept a path string.

В членах, принимающих путь, путь может ссылаться на файл или только на каталог.In members that accept a path, the path can refer to a file or just a directory. Указанный путь может также ссылаться на относительный путь или путь в формате UNC для имени сервера и общего ресурса.The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. Например, все следующие допустимые пути:For example, all the following are acceptable paths:

  • "c:\\мидир\\мифиле.ткст" in C#или "к:\мидир\мифиле.ткст" в Visual Basic."c:\\MyDir\\MyFile.txt" in C#, or "c:\MyDir\MyFile.txt" in Visual Basic.

  • "c:\\мидир" in C#или "к:\мидир" в Visual Basic."c:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.

  • «MyDir\\мисубдир» в C#или «мидир\мисубдир» в Visual Basic."MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in Visual Basic.

  • «\\ C#\Мисервер \мишаре» в или«\\MyServer\MyShare» в Visual Basic.\\"\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.

FileInfo Класс предоставляет следующие свойства, позволяющие получить сведения о файле.The FileInfo class provides the following properties that enable you to retrieve information about a file. Пример использования каждого свойства см. в разделе страницы свойств.For an example of how to use each property, see the property pages.

  • Directory Свойство получает объект, представляющий родительский каталог файла.The Directory property retrieves an object that represents the parent directory of a file.

  • DirectoryName Свойство получает полный путь к родительскому каталогу файла.The DirectoryName property retrieves the full path of the parent directory of a file.

  • Exists Свойство проверяет наличие файла перед его обработам.The Exists property checks for the presence of a file before operating on it.

  • IsReadOnly Свойство извлекает или задает значение, указывающее, можно ли изменить файл.The IsReadOnly property retrieves or sets a value that specifies whether a file can be modified.

  • Length Возвращает размер файла.The Length retrieves the size of a file.

  • Name Возвращает имя файла.The Name retrieves the name of a file.

Конструкторы

FileInfo(String)

Выполняет инициализацию нового экземпляра класса FileInfo, который служит оболочкой для пути файла.Initializes a new instance of the FileInfo class, which acts as a wrapper for a file path.

Поля

FullPath

Представляет полный путь к каталогу или файлу.Represents the fully qualified path of the directory or file.

(Унаследовано от FileSystemInfo)
OriginalPath

Первоначально заданный пользователем относительный или абсолютный путь.The path originally specified by the user, whether relative or absolute.

(Унаследовано от FileSystemInfo)

Свойства

Attributes

Получает или задает атрибуты для текущего файла или каталога.Gets or sets the attributes for the current file or directory.

(Унаследовано от FileSystemInfo)
CreationTime

Получает или задает время создания текущего файла или каталога.Gets or sets the creation time of the current file or directory.

(Унаследовано от FileSystemInfo)
CreationTimeUtc

Получает или задает время создания текущего файла или каталога в формате UTC.Gets or sets the creation time, in coordinated universal time (UTC), of the current file or directory.

(Унаследовано от FileSystemInfo)
Directory

Получает экземпляр родительского каталога.Gets an instance of the parent directory.

DirectoryName

Получает строку, представляющую полный путь к каталогу.Gets a string representing the directory's full path.

Exists

Получает значение, показывающее, существует ли файл.Gets a value indicating whether a file exists.

Extension

Получает строку, содержащую расширение файла.Gets the string representing the extension part of the file.

(Унаследовано от FileSystemInfo)
FullName

Получает полный путь к каталогу или файлу.Gets the full path of the directory or file.

(Унаследовано от FileSystemInfo)
IsReadOnly

Возвращает или задает значение, позволяющее определить, является ли текущий файл доступным только для чтения.Gets or sets a value that determines if the current file is read only.

LastAccessTime

Получает или задает время последнего доступа к текущему файлу или каталогу.Gets or sets the time the current file or directory was last accessed.

(Унаследовано от FileSystemInfo)
LastAccessTimeUtc

Получает или задает дату и время последнего доступа к заданному файлу или каталогу в формате всеобщего скоординированного времени (UTC).Gets or sets the time, in coordinated universal time (UTC), that the current file or directory was last accessed.

(Унаследовано от FileSystemInfo)
LastWriteTime

Получает или задает время последней операции записи в текущий файл или каталог.Gets or sets the time when the current file or directory was last written to.

(Унаследовано от FileSystemInfo)
LastWriteTimeUtc

Получает или задает время последней операции записи в текущий файл или каталог в формате всеобщего скоординированного времени (UTC).Gets or sets the time, in coordinated universal time (UTC), when the current file or directory was last written to.

(Унаследовано от FileSystemInfo)
Length

Получает размер текущего файла в байтах.Gets the size, in bytes, of the current file.

Name

Получает имя файла.Gets the name of the file.

Методы

AppendText()

Создает StreamWriter, который добавляет текст в файл, представленный этим экземпляром FileInfo.Creates a StreamWriter that appends text to the file represented by this instance of the FileInfo.

CopyTo(String)

Копирует существующий файл в новый файл и запрещает перезапись существующего файла.Copies an existing file to a new file, disallowing the overwriting of an existing file.

CopyTo(String, Boolean)

Копирует существующий файл в новый файл и разрешает перезапись существующего файла.Copies an existing file to a new file, allowing the overwriting of an existing file.

Create()

Создает файл.Creates a file.

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Унаследовано от MarshalByRefObject)
CreateText()

Создает StreamWriter, который записывает новый текстовый файл.Creates a StreamWriter that writes a new text file.

Decrypt()

Расшифровывает файл, зашифрованный текущей учетной записью с помощью метода Encrypt().Decrypts a file that was encrypted by the current account using the Encrypt() method.

Delete()

Удаляет файл без возможности восстановления.Permanently deletes a file.

Encrypt()

Шифрует файл таким образом, чтобы его можно было расшифровать только с помощью учетной записи, которая использовалась для шифрования.Encrypts a file so that only the account used to encrypt the file can decrypt it.

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetAccessControl()

Возвращает объект FileSecurity, который инкапсулирует записи списка управления доступом (ACL) для файла, описываемого текущим объектом FileInfo.Gets a FileSecurity object that encapsulates the access control list (ACL) entries for the file described by the current FileInfo object.

GetAccessControl(AccessControlSections)

Получает объект FileSecurity, который инкапсулирует заданный тип записей списка управления доступом для файла, описываемого текущим объектом FileInfo.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()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetLifetimeService()

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Устанавливает объект SerializationInfo с именем файла и дополнительными сведениями об исключении.Sets the SerializationInfo object with the file name and additional exception information.

(Унаследовано от FileSystemInfo)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
InitializeLifetimeService()

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.Obtains a lifetime service object to control the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.Creates a shallow copy of the current MarshalByRefObject object.

(Унаследовано от MarshalByRefObject)
MoveTo(String)

Перемещает заданный файл в новое местоположение и разрешает переименование файла.Moves a specified file to a new location, providing the option to specify a new file name.

MoveTo(String, Boolean)

Перемещает указанный файл в новое расположение, предоставляя параметры для указания нового имени файла и перезаписи конечного файла, если он уже существует.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)

Открывает файл в заданном режиме.Opens a file in the specified mode.

Open(FileMode, FileAccess)

Открывает файл в заданном режиме с доступом для чтения или записи, или и для чтения, и для записи.Opens a file in the specified mode with read, write, or read/write access.

Open(FileMode, FileAccess, FileShare)

Открывает файл в заданном режиме с доступом для чтения, записи или и для чтения, и для записи и с заданным параметром совместного доступа.Opens a file in the specified mode with read, write, or read/write access and the specified sharing option.

OpenRead()

Создает доступный только для чтения поток FileStream.Creates a read-only FileStream.

OpenText()

Создает поток StreamReader с кодировкой UTF-8, который считывает данные из существующего текстового файла.Creates a StreamReader with UTF8 encoding that reads from an existing text file.

OpenWrite()

Создает доступный только для чтения поток FileStream.Creates a write-only FileStream.

Refresh()

Обновляет состояние объекта.Refreshes the state of the object.

(Унаследовано от FileSystemInfo)
Replace(String, String)

Заменяет содержимое заданного файла на содержимое файла, которое описано в текущем объекте FileInfo, удаляет исходный файл и создает резервную копию замененного файла.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)

Заменяет содержимое заданного файла на содержимое файла, которое описано в текущем объекте FileInfo, удаляет исходный файл и создает резервную копию замененного файла.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. Также позволяет определить, нужно ли игнорировать ошибки слияния.Also specifies whether to ignore merge errors.

SetAccessControl(FileSecurity)

Применяет записи списка управления доступом (ACL), описанные объектом FileSecurity, к файлу, который описывается текущим объектом FileInfo.Applies access control list (ACL) entries described by a FileSecurity object to the file described by the current FileInfo object.

ToString()

Возвращает путь в виде строки.Returns the path as a string. Используйте свойство Name для полного пути.Use the Name property for the full path.

Методы расширения

GetAccessControl(FileInfo)
GetAccessControl(FileInfo, AccessControlSections)
SetAccessControl(FileInfo, FileSecurity)

Применяется к

Дополнительно