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 |
Получает часть расширения имени файла, включая ведущее |
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) |
Копирует существующий файл в новый файл, разрешая перезапись существующего файла. |
CopyTo(String, Boolean) |
Копирует существующий файл в новый файл, разрешая перезапись существующего файла. |
Create() |
Создает файл. |
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) |
Перемещает указанный файл в новое расположение, предоставляя параметр для указания нового имени файла. |
MoveTo(String, Boolean) |
Перемещает указанный файл в новое расположение, предоставляя параметры для указания нового имени файла и перезаписи целевого файла, если он уже существует. |
Open(FileMode) |
Открывает файл в указанном режиме. |
Open(FileMode, FileAccess) |
Открывает файл в указанном режиме с доступом на чтение, запись или запись. |
Open(FileMode, FileAccess, FileShare) |
Открывает файл в указанном режиме с доступом на чтение, запись или запись и указанный параметр общего доступа. |
Open(FileStreamOptions) |
Инициализирует новый экземпляр класса FileStream с указанным режимом создания, разрешением на чтение и запись и общий доступ, доступ к другим файлам может иметь тот же файл, размер буфера, дополнительные параметры файла и размер выделения. |
OpenRead() |
Создает FileStreamтолько для чтения. |
OpenText() |
Создает StreamReader с кодировкой UTF8, которая считывается из существующего текстового файла. |
OpenWrite() |
Создает FileStreamтолько для записи. |
Refresh() |
Обновляет состояние объекта. (Унаследовано от FileSystemInfo) |
Replace(String, String) |
Заменяет содержимое указанного файла файлом, описанным текущим объектом FileInfo, удаление исходного файла и создание резервной копии замененного файла. |
Replace(String, String, Boolean) |
Заменяет содержимое указанного файла файлом, описанным текущим объектом 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) |
Возвращает сведения о безопасности файла. |
GetAccessControl(FileInfo, AccessControlSections) |
Возвращает сведения о безопасности файла. |
SetAccessControl(FileInfo, FileSecurity) |
Изменяет атрибуты безопасности существующего файла. |