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 |
Получает часть расширения имени файла, в том числе в начале |
| FullName |
Получает полный путь к каталогу или файлу. (Унаследовано от FileSystemInfo) |
| IsReadOnly |
Возвращает или задает значение, определяющее, доступен ли текущий файл только для чтения. |
| LastAccessTime |
Возвращает или задает время последнего доступа к текущему файлу или каталогу. (Унаследовано от FileSystemInfo) |
| LastAccessTimeUtc |
Возвращает или задает время в формате UTC, к которому последний доступ был доступ к текущему файлу или каталогу. (Унаследовано от FileSystemInfo) |
| LastWriteTime |
Возвращает или задает время последнего записи текущего файла или каталога. (Унаследовано от FileSystemInfo) |
| LastWriteTimeUtc |
Получает или задает время( в формате UTC), когда текущий файл или каталог был записан в последний раз. (Унаследовано от FileSystemInfo) |
| Length |
Возвращает размер текущего файла в байтах. |
| LinkTarget |
Возвращает целевой путь ссылки, расположенной в FullName, или |
| Name |
Возвращает имя файла. |
| UnixFileMode |
Возвращает или задает режим файлов Unix для текущего файла или каталога. (Унаследовано от FileSystemInfo) |
Методы
| Имя | Описание |
|---|---|
| AppendText() |
StreamWriter Создает текст, добавляющий текст в файл, представленный этим экземпляромFileInfo. |
| CopyTo(String, Boolean) |
Копирует существующий файл в новый файл, разрешая перезапись существующего файла. |
| CopyTo(String) |
Копирует существующий файл в новый файл, разрешая перезапись существующего файла. |
| Create() |
Создает файл. |
| CreateAsHardLink(String) |
Предоставляет методы свойств и экземпляров для создания, копирования, удаления, перемещения и открытия файлов, а также для создания FileStream объектов. Этот класс не может быть унаследован. |
| CreateAsSymbolicLink(String) |
Создает символьную ссылку, расположенную в FullName указанной точке |
| 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) |
Изменяет атрибуты безопасности существующего файла. |