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: \ \мидир \\MyFile.txt" в C# или "c:\MyDir\MyFile.txt" в Visual Basic.

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

  • "MyDir \ \мисубдир" в C# или "мидир\мисубдир" в Visual Basic.

  • " \ \ \ \мисервер \ \мишаре" в 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

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

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

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

Методы

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

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

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

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

GetAccessControl(FileInfo)

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

GetAccessControl(FileInfo, AccessControlSections)

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

SetAccessControl(FileInfo, FileSecurity)

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

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

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