Поделиться через


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 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или CreateTextCreate.

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

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

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

CopyTo(String)

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

Create()

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

CreateAsHardLink(String)

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

CreateAsSymbolicLink(String)

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

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

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

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

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

Decrypt()

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

Delete()

Окончательно удаляет файл.

Encrypt()

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

Equals(Object)

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

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

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

GetAccessControl(AccessControlSections)

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

GetHashCode()

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

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

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

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

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

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

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

(Унаследовано от Object)
InitializeLifetimeService()
Устаревшие..

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

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

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

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

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

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

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

MoveTo(String)

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

Open(FileMode, FileAccess, FileShare)

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

Open(FileMode, FileAccess)

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

Open(FileMode)

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

Open(FileStreamOptions)

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

OpenRead()

Создает только для FileStreamчтения.

OpenText()

Создает кодировку StreamReader UTF8, которая считывается из существующего текстового файла.

OpenWrite()

Создает только запись FileStream.

Refresh()

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

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

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

Replace(String, String)

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

ResolveLinkTarget(Boolean)

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

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

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

ToString()

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

ToString()

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

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

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

Имя Описание
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

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

GetAccessControl(FileInfo, AccessControlSections)

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

GetAccessControl(FileInfo)

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

SetAccessControl(FileInfo, FileSecurity)

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

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

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