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
- Наследование
- Наследование
- Атрибуты
Примеры
В следующем примере показаны некоторые main члены 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, который инкапсулирует заданный тип записей списка управления доступом для файла, описываемого текущим объектом 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() |
Возвращает исходный путь, переданный в конструктор FileInfo. FullName Используйте свойство или Name для полного пути или имени файла. |
ToString() |
Возвращает исходный путь. Используйте свойства FullName или Name для полного пути или имени файла или каталога. (Унаследовано от FileSystemInfo) |
Методы расширения
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Создает файловый поток с указанными свойствами и параметрами безопасности. |
GetAccessControl(FileInfo) |
Возвращает сведения о безопасности для файла. |
GetAccessControl(FileInfo, AccessControlSections) |
Возвращает сведения о безопасности для файла. |
SetAccessControl(FileInfo, FileSecurity) |
Изменяет атрибуты безопасности для существующего файла. |
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по