FileInfo Класс

Определение

Предоставляет свойства и методы экземпляра для создания, копирования, удаления, перемещения и открытия файлов, а также позволяет создавать объекты FileStream. Этот класс не наследуется.

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
Наследование
Наследование
Атрибуты

Примеры

В следующем примере показаны некоторые основные члены FileInfo класса .

При первом извлечении FileInfo свойств вызывает Refresh метод и кэширует сведения о файле. При последующих вызовах необходимо позвонить Refresh , чтобы получить последнюю копию сведений.

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

В этом примере выводятся выходные данные, аналогичные приведенным ниже.

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

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

Многие методы FileInfo возвращают другие типы операций ввода-вывода при создании или открытии файлов. Эти типы можно использовать для дальнейшей работы с файлом. Дополнительные сведения см. в разделе о конкретных FileInfo элементах, таких как Open, OpenRead, OpenText, CreateTextили Create.

По умолчанию полный доступ на чтение и запись к новым файлам предоставляется всем пользователям.

В следующей таблице описаны перечисления, используемые для настройки поведения различных FileInfo методов.

Перечисление Описание
FileAccess Указывает доступ на чтение и запись к файлу.
FileShare Указывает уровень доступа, разрешенный для файла, который уже используется.
FileMode Указывает, сохраняется или перезаписывается содержимое существующего файла, а также вызывает ли запросы на создание существующего файла исключение.

Примечание

В членах, которые принимают путь в качестве входной строки, этот путь должен быть правильно сформирован или возникать исключение. Например, если путь является полным, но начинается с пробела, путь не обрезается в методах класса . Таким образом, путь имеет неправильный формат и вызывается исключение. Точно так же путь или сочетание путей не могут быть полностью уточнены дважды. Например, "c:\temp c:\windows" в большинстве случаев также вызывает исключение. Убедитесь, что пути правильно сформированы при использовании методов, которые принимают строку пути.

В элементах, которые принимают путь, путь может ссылаться на файл или только каталог. Указанный путь также может ссылаться на относительный путь или UNC-путь для имени сервера и общей папки. Например, допустимы все следующие пути:

  • "c:\\MyDir\\MyFile.txt" в C# или "c:\MyDir\MyFile.txt" в Visual Basic.

  • "c:\\MyDir" в C# или "c:\MyDir" в Visual Basic.

  • "MyDir\\MySubdir" в C# или "MyDir\MySubDir" в Visual Basic.

  • "\\\\MyServer\\MyShare" в C# или "\\MyServer\MyShare" в Visual Basic.

Класс FileInfo предоставляет следующие свойства, позволяющие получать сведения о файле. Пример использования каждого свойства см. на страницах свойств.

  • Свойство Directory извлекает объект , представляющий родительский каталог файла.

  • Свойство DirectoryName извлекает полный путь к родительскому каталогу файла.

  • Свойство Exists проверяет наличие файла, прежде чем работать с ним.

  • Свойство IsReadOnly извлекает или задает значение, указывающее, можно ли изменить файл.

  • Извлекает Length размер файла.

  • Извлекает Name имя файла.

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

FileInfo(String)

Выполняет инициализацию нового экземпляра класса FileInfo, который служит оболочкой для пути файла.

Поля

FullPath

Представляет полный путь к каталогу или файлу.

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

Первоначально заданный пользователем относительный или абсолютный путь.

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

Свойства

Attributes

Получает или задает атрибуты для текущего файла или каталога.

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

Получает или задает время создания текущего файла или каталога.

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

Получает или задает время создания текущего файла или каталога в формате UTC.

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

Получает экземпляр родительского каталога.

DirectoryName

Получает строку, представляющую полный путь к каталогу.

Exists

Получает значение, показывающее, существует ли файл.

Extension

Возвращает часть расширения имени файла, включая начальную точку . , даже если это все имя файла, или пустую строку, если расширение отсутствует.

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

Получает полный путь к каталогу или файлу.

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

Возвращает или задает значение, позволяющее определить, является ли текущий файл доступным только для чтения.

LastAccessTime

Получает или задает время последнего доступа к текущему файлу или каталогу.

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

Получает или задает дату и время последнего доступа к заданному файлу или каталогу в формате всеобщего скоординированного времени (UTC).

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

Получает или задает время последней операции записи в текущий файл или каталог.

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

Получает или задает время последней операции записи в текущий файл или каталог в формате всеобщего скоординированного времени (UTC).

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

Получает размер текущего файла в байтах.

LinkTarget

Возвращает целевой путь к ссылке, расположенной в FullName, или null , если этот FileSystemInfo экземпляр не представляет ссылку.

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

Получает имя файла.

UnixFileMode

Возвращает или задает режим файла Unix для текущего файла или каталога.

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

Методы

AppendText()

Создает StreamWriter, который добавляет текст в файл, представленный этим экземпляром FileInfo.

CopyTo(String)

Копирует существующий файл в новый файл и запрещает перезапись существующего файла.

CopyTo(String, Boolean)

Копирует существующий файл в новый файл и разрешает перезапись существующего файла.

Create()

Создает файл.

CreateAsSymbolicLink(String)

Создает символьную ссылку, расположенную в FullName , которая указывает на указанный pathToTargetобъект .

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

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

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

Создает StreamWriter, который записывает новый текстовый файл.

Decrypt()

Расшифровывает файл, зашифрованный текущей учетной записью с помощью метода Encrypt().

Delete()

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

Encrypt()

Шифрует файл таким образом, чтобы его можно было расшифровать только с помощью учетной записи, которая использовалась для шифрования.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

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

Возвращает объект FileSecurity, который инкапсулирует записи списка управления доступом (ACL) для файла, описываемого текущим объектом FileInfo.

GetAccessControl(AccessControlSections)

Получает объект FileSecurity, который инкапсулирует заданный тип записей списка управления доступом для файла, описываемого текущим объектом FileInfo.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Является устаревшей.

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

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

Устанавливает объект SerializationInfo с именем файла и дополнительными сведениями об исключении.

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

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

(Унаследовано от Object)
InitializeLifetimeService()
Является устаревшей.

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

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

Создает неполную копию текущего объекта Object.

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

Создает неполную копию текущего объекта MarshalByRefObject.

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

Перемещает заданный файл в новое местоположение и разрешает переименование файла.

MoveTo(String, Boolean)

Перемещает указанный файл в новое расположение, предоставляя параметры для указания нового имени файла и перезаписи конечного файла, если он уже существует.

Open(FileMode)

Открывает файл в заданном режиме.

Open(FileMode, FileAccess)

Открывает файл в заданном режиме с доступом для чтения или записи, или и для чтения, и для записи.

Open(FileMode, FileAccess, FileShare)

Открывает файл в заданном режиме с доступом для чтения, записи или и для чтения, и для записи и с заданным параметром совместного доступа.

Open(FileStreamOptions)

Инициализирует новый экземпляр FileStream класса с заданным режимом создания, разрешением на чтение и запись и общий доступ, доступ к другим файловых потокам может иметь тот же файл, размер буфера, дополнительные параметры файла и размер выделения.

OpenRead()

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

OpenText()

Создает поток StreamReader с кодировкой UTF-8, который считывает данные из существующего текстового файла.

OpenWrite()

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

Refresh()

Обновляет состояние объекта.

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

Заменяет содержимое заданного файла на содержимое файла, которое описано в текущем объекте FileInfo, удаляет исходный файл и создает резервную копию замененного файла.

Replace(String, String, Boolean)

Заменяет содержимое заданного файла на содержимое файла, которое описано в текущем объекте FileInfo, удаляет исходный файл и создает резервную копию замененного файла. Также позволяет определить, нужно ли игнорировать ошибки слияния.

ResolveLinkTarget(Boolean)

Возвращает целевой объект указанной ссылки.

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

Применяет записи списка управления доступом (ACL), описанные объектом FileSecurity, к файлу, который описывается текущим объектом FileInfo.

ToString()

Возвращает путь в виде строки. Используйте свойство Name для полного пути.

ToString()

Возвращает исходный путь. Используйте свойства FullName или Name для полного пути или имени файла или каталога.

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

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

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

Создает файловый поток с указанными свойствами и параметрами безопасности.

GetAccessControl(FileInfo)

Возвращает сведения о безопасности для файла.

GetAccessControl(FileInfo, AccessControlSections)

Возвращает сведения о безопасности для файла.

SetAccessControl(FileInfo, FileSecurity)

Изменяет атрибуты безопасности для существующего файла.

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

См. также раздел