File Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет статические методы для создания, копирования, удаления, перемещения и открытия одного файла, а также помогает при создании объектов FileStream.
public ref class File abstract sealed
public ref class File sealed
public static class File
public sealed class File
[System.Runtime.InteropServices.ComVisible(true)]
public static class File
type File = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type File = class
Public Class File
Public NotInheritable Class File
- Наследование
-
File
- Атрибуты
Примеры
В следующем примере показано, как использовать File класс для проверка, существует ли файл, и в зависимости от результата либо создать новый файл и записать в него, либо открыть существующий файл и прочитать его. Перед выполнением кода создайте папку c:\temp
.
using namespace System;
using namespace System::IO;
int main()
{
String^ path = "c:\\temp\\MyTest.txt";
if ( !File::Exists( path ) )
{
// Create a file to write to.
StreamWriter^ sw = File::CreateText( path );
try
{
sw->WriteLine( "Hello" );
sw->WriteLine( "And" );
sw->WriteLine( "Welcome" );
}
finally
{
if ( sw )
delete (IDisposable^)(sw);
}
}
// Open the file to read from.
StreamReader^ sr = File::OpenText( path );
try
{
String^ s = "";
while ( s = sr->ReadLine() )
{
Console::WriteLine( s );
}
}
finally
{
if ( sr )
delete (IDisposable^)(sr);
}
try
{
String^ path2 = String::Concat( path, "temp" );
// Ensure that the target does not exist.
File::Delete( path2 );
// Copy the file.
File::Copy( path, path2 );
Console::WriteLine( "{0} was copied to {1}.", path, path2 );
// Delete the newly created file.
File::Delete( path2 );
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 = @"c:\temp\MyTest.txt";
if (!File.Exists(path))
{
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}
}
// Open the file to read from.
using (StreamReader sr = File.OpenText(path))
{
string s;
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
}
}
open System.IO
let path = @"c:\temp\MyTest.txt"
if File.Exists path |> not then
// Create a file to write to.
use sw = File.CreateText path
sw.WriteLine "Hello"
sw.WriteLine "And"
sw.WriteLine "Welcome"
// Open the file to read from.
do
use sr = File.OpenText path
let mutable s = sr.ReadLine()
while isNull s |> not do
printfn $"{s}"
s <- sr.ReadLine()
Imports System.IO
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
If File.Exists(path) = False Then
' Create a file to write to.
Using sw As StreamWriter = File.CreateText(path)
sw.WriteLine("Hello")
sw.WriteLine("And")
sw.WriteLine("Welcome")
End Using
End If
' Open the file to read from.
Using sr As StreamReader = File.OpenText(path)
Do While sr.Peek() >= 0
Console.WriteLine(sr.ReadLine())
Loop
End Using
End Sub
End Class
Комментарии
File Используйте класс для типичных операций, таких как копирование, перемещение, переименование, создание, открытие, удаление и добавление к одному файлу за раз. Класс также можно использовать для File получения и задания атрибутов файла или DateTime сведений, связанных с созданием, доступом и записью файла. Если вы хотите выполнять операции с несколькими файлами, см. раздел Directory.GetFiles или DirectoryInfo.GetFiles.
Многие методы File возвращают другие типы ввода-вывода при создании или открытии файлов. Эти типы можно использовать для дальнейшей работы с файлом. Дополнительные сведения см. в разделе о конкретных File элементах, таких как OpenText, CreateTextили Create.
Так как все File методы являются статическими, может быть эффективнее использовать File метод, а не соответствующий FileInfo метод экземпляра, если требуется выполнить только одно действие. Для всех File методов требуется путь к файлу, которым вы управляете.
Статические методы File класса выполняют проверки безопасности для всех методов. Если вы собираетесь повторно использовать объект несколько раз, рассмотрите возможность использования соответствующего метода экземпляра FileInfo , так как проверка безопасности не всегда будет необходимо.
По умолчанию полный доступ на чтение и запись к новым файлам предоставляется всем пользователям.
В следующей таблице описаны перечисления, используемые для настройки поведения различных File методов.
Перечисление | Описание |
---|---|
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.
Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.
Методы
AppendAllBytes(String, Byte[]) |
Предоставляет статические методы для создания, копирования, удаления, перемещения и открытия одного файла, а также помогает при создании объектов FileStream. |
AppendAllBytesAsync(String, Byte[], CancellationToken) |
Предоставляет статические методы для создания, копирования, удаления, перемещения и открытия одного файла, а также помогает при создании объектов FileStream. |
AppendAllLines(String, IEnumerable<String>) |
Добавляет строки в файл, затем закрывает файл. Если указанный файл не существует, этот метод создает файл, записывает в него указанные строки и затем закрывает файл. |
AppendAllLines(String, IEnumerable<String>, Encoding) |
Добавляет строки в файл, используя заданную кодировку, затем закрывает файл. Если указанный файл не существует, этот метод создает файл, записывает в него указанные строки и затем закрывает файл. |
AppendAllLinesAsync(String, IEnumerable<String>, CancellationToken) |
Асинхронно добавляет строки в файл, затем закрывает файл. Если указанный файл не существует, этот метод создает файл, записывает в него указанные строки и затем закрывает файл. |
AppendAllLinesAsync(String, IEnumerable<String>, Encoding, CancellationToken) |
Асинхронно добавляет строки в файл, используя заданную кодировку, затем закрывает файл. Если указанный файл не существует, этот метод создает файл, записывает в него указанные строки и затем закрывает файл. |
AppendAllText(String, String) |
Открывает файл, добавляет в него указанную строку и затем закрывает файл. Если файл не существует, этот метод создает файл, записывает в него указанную строку и затем закрывает файл. |
AppendAllText(String, String, Encoding) |
Добавляет указанную строку в файл в указанной кодировке, создавая файл, если он не существует. |
AppendAllTextAsync(String, String, CancellationToken) |
Асинхронно открывает или создает файл, если он еще не существует, добавляет указанную строку в файл, а затем закрывает файл. |
AppendAllTextAsync(String, String, Encoding, CancellationToken) |
Асинхронно открывает или создает файл, если он еще не существует, добавляет указанную строку в файл в указанной кодировке, а затем закрывает файл. |
AppendText(String) |
Создает объект StreamWriter, добавляющий текст с кодировкой UTF-8 в существующий файл, или в новый файл, если указанный файл не существует. |
Copy(String, String) |
Копирует существующий файл в новый файл. Перезапись файла с тем же именем не разрешена. |
Copy(String, String, Boolean) |
Копирует существующий файл в новый файл. Перезапись файла с тем же именем разрешена. |
Create(String) |
Создает или усекает и перезаписывает файл по указанному пути. |
Create(String, Int32) |
Создает или усекает и перезаписывает файл по указанному пути, указывая размер буфера. |
Create(String, Int32, FileOptions) |
Создает или перезаписывает файл по заданному пути с указанием размера буфера и параметров, которые описывают, как создавать или перезаписывать файл. |
Create(String, Int32, FileOptions, FileSecurity) |
Создает или перезаписывает файл по заданному пути с указанием размера буфера и параметров, которые описывают, как создавать или перезаписывать файл. Также указывается значение, определяющее контроль доступа и безопасность аудита для файла. |
CreateSymbolicLink(String, String) |
Создает символьную ссылку на файл, определяемую параметром |
CreateText(String) |
Создается или открывается файл для записи текста в кодировке UTF-8. Если файл уже существует, его содержимое будет заменено. |
Decrypt(String) |
Расшифровывает файл, зашифрованный текущей учетной записью с помощью метода Encrypt(String). |
Delete(String) |
Удаляет указанный файл. |
Encrypt(String) |
Шифрует файл таким образом, чтобы его можно было расшифровать только с помощью учетной записи, которая использовалась для шифрования. |
Exists(String) |
Определяет, существует ли заданный файл. |
GetAccessControl(String) |
Получает объект FileSecurity, который инкапсулирует записи списка ACL для заданного файла. |
GetAccessControl(String, AccessControlSections) |
Получает объект FileSecurity, инкапсулирующий записи списка ACL определенного типа для конкретного файла. |
GetAttributes(SafeFileHandle) |
Возвращает указанный FileAttributes файл или каталог, связанный с |
GetAttributes(String) |
Получает значение FileAttributes для файла в пути. |
GetCreationTime(SafeFileHandle) |
Возвращает время создания указанного файла или каталога. |
GetCreationTime(String) |
Возвращает дату и время создания заданного файла или каталога. |
GetCreationTimeUtc(SafeFileHandle) |
Возвращает дату и время создания указанного файла или каталога в формате UTC. |
GetCreationTimeUtc(String) |
Возвращает дату и время создания указанного файла или каталога в формате UTC. |
GetLastAccessTime(SafeFileHandle) |
Возвращает дату и время последнего доступа к указанному файлу или каталогу. |
GetLastAccessTime(String) |
Возвращает время и дату последнего обращения к указанному файлу или каталогу. |
GetLastAccessTimeUtc(SafeFileHandle) |
Возвращает дату и время последнего доступа к указанному файлу или каталогу в формате UTC. |
GetLastAccessTimeUtc(String) |
Возвращает дату и время последнего доступа к указанному файлу или каталогу в формате UTC. |
GetLastWriteTime(SafeFileHandle) |
Возвращает дату и время последней записи указанного файла или каталога. |
GetLastWriteTime(String) |
Возвращает время и дату последней операции записи в указанный файл или каталог. |
GetLastWriteTimeUtc(SafeFileHandle) |
Возвращает дату и время последней записи указанного файла или каталога в формате UTC. |
GetLastWriteTimeUtc(String) |
Возвращает дату и время последней записи указанного файла или каталога в формате UTC. |
GetUnixFileMode(SafeFileHandle) |
Возвращает объект UnixFileMode указанного дескриптора файла. |
GetUnixFileMode(String) |
Получает значение UnixFileMode для файла в пути. |
Move(String, String) |
Перемещает заданный файл в новое местоположение и разрешает переименование файла. |
Move(String, String, Boolean) |
Перемещает указанный файл в новое расположение, предоставляя параметры для указания нового имени файла и замены целевого файла, если он уже существует. |
Open(String, FileMode) |
Открывает объект FileStream по указанному пути с доступом для чтения и записи без совместного доступа. |
Open(String, FileMode, FileAccess) |
Открывает FileStream в заданном пути с заданным режимом и доступом без совместного доступа. |
Open(String, FileMode, FileAccess, FileShare) |
Открывает FileStream в заданном пути, с заданным режимом доступа для чтения, записи или чтения и записи и с заданным параметром совместного использования. |
Open(String, FileStreamOptions) |
Инициализирует новый экземпляр FileStream класса с указанным путем, режимом создания, разрешением на чтение и запись и совместное использование, доступом других файловых потоков к тому же файлу, размером буфера, дополнительными параметрами файла и размером выделения. |
OpenHandle(String, FileMode, FileAccess, FileShare, FileOptions, Int64) |
Инициализирует новый экземпляр SafeFileHandle класса с указанным путем, режимом создания, разрешением на чтение и запись и совместное использование, доступом к другому файлу SafeFileHandles, дополнительными параметрами файла и размером выделения. |
OpenRead(String) |
Открывает для чтения существующий файл. |
OpenText(String) |
Открывает для чтения существующий файл, содержащий текст в кодировке UTF-8. |
OpenWrite(String) |
Открывает существующий файл или создает новый файл для записи. |
ReadAllBytes(String) |
Открывает двоичный файл, считывает содержимое файла в массив байтов и затем закрывает файл. |
ReadAllBytesAsync(String, CancellationToken) |
Асинхронно открывает двоичный файл, считывает содержимое файла в массив байтов и затем закрывает файл. |
ReadAllLines(String) |
Открывает текстовый файл, считывает все строки файла и затем закрывает файл. |
ReadAllLines(String, Encoding) |
Открывает файл, считывает все строки файла с заданной кодировкой и затем закрывает файл. |
ReadAllLinesAsync(String, CancellationToken) |
Асинхронно открывает текстовый файл, считывает все строки файла и затем закрывает файл. |
ReadAllLinesAsync(String, Encoding, CancellationToken) |
Асинхронно открывает текстовый файл, считывает все строки файла с заданной кодировкой и затем закрывает файл. |
ReadAllText(String) |
Открывает текстовый файл, считывает весь текст файла и затем закрывает файл. |
ReadAllText(String, Encoding) |
Открывает файл, считывает весь текст файла с заданной кодировкой и затем закрывает файл. |
ReadAllTextAsync(String, CancellationToken) |
Асинхронно открывает текстовый файл, считывает весь текст файла и затем закрывает файл. |
ReadAllTextAsync(String, Encoding, CancellationToken) |
Асинхронно открывает текстовый файл, считывает весь текст из файла с заданной кодировкой и затем закрывает файл. |
ReadLines(String) |
Считывает строки файла. |
ReadLines(String, Encoding) |
Считывает строки файла с заданной кодировкой. |
ReadLinesAsync(String, CancellationToken) |
Асинхронно считывает строки файла. |
ReadLinesAsync(String, Encoding, CancellationToken) |
Асинхронно считывает строки файла с указанной кодировкой. |
Replace(String, String, String) |
Заменяет содержимое заданного файла на содержимое другого файла, удаляя исходный файл и создавая резервную копию замененного файла. |
Replace(String, String, String, Boolean) |
Заменяет содержимое заданного файла на содержимое другого файла, удаляя исходный файл и создавая резервную копию замененного файла, и при необходимости игнорирует ошибки слияния. |
ResolveLinkTarget(String, Boolean) |
Возвращает целевой объект указанной ссылки на файл. |
SetAccessControl(String, FileSecurity) |
Применяет записи списка управления доступом (ACL), описанные объектом FileSecurity, к заданному файлу. |
SetAttributes(SafeFileHandle, FileAttributes) |
Задает указанный FileAttributes файл или каталог, связанный с |
SetAttributes(String, FileAttributes) |
Устанавливает заданные атрибуты FileAttributes файла по заданному пути. |
SetCreationTime(SafeFileHandle, DateTime) |
Задает дату и время создания файла или каталога. |
SetCreationTime(String, DateTime) |
Устанавливает дату и время создания файла. |
SetCreationTimeUtc(SafeFileHandle, DateTime) |
Задает дату и время создания файла или каталога в формате UTC. |
SetCreationTimeUtc(String, DateTime) |
Задает дату и время создания файла в формате UTC. |
SetLastAccessTime(SafeFileHandle, DateTime) |
Устанавливает время и дату последнего обращения к заданному файлу или каталогу. |
SetLastAccessTime(String, DateTime) |
Устанавливаются дата и время последнего доступа к заданному файлу. |
SetLastAccessTimeUtc(SafeFileHandle, DateTime) |
Задает дату и время последнего доступа к указанному файлу или каталогу в формате UTC. |
SetLastAccessTimeUtc(String, DateTime) |
Задает дату и время последнего доступа к указанному файлу в формате UTC. |
SetLastWriteTime(SafeFileHandle, DateTime) |
Задает дату и время последней записи указанного файла или каталога. |
SetLastWriteTime(String, DateTime) |
Устанавливаются дата и время последней операции записи в заданный файл. |
SetLastWriteTimeUtc(SafeFileHandle, DateTime) |
Задает дату и время последней записи указанного файла или каталога в формате UTC. |
SetLastWriteTimeUtc(String, DateTime) |
Задает дату и время последней записи указанного файла в формате UTC. |
SetUnixFileMode(SafeFileHandle, UnixFileMode) |
Задает заданный UnixFileMode дескриптор файла. |
SetUnixFileMode(String, UnixFileMode) |
Устанавливает заданные атрибуты UnixFileMode файла по заданному пути. |
WriteAllBytes(String, Byte[]) |
Создает новый файл, записывает в него указанный массив байтов и затем закрывает файл. Если целевой файл уже существует, он усекается и перезаписывается. |
WriteAllBytesAsync(String, Byte[], CancellationToken) |
Асинхронно создает новый файл, записывает в него указанный массив байтов и затем закрывает файл. Если целевой файл уже существует, он усекается и перезаписывается. |
WriteAllLines(String, IEnumerable<String>) |
Создает новый файл, записывает в него коллекцию строк, затем закрывает файл. |
WriteAllLines(String, IEnumerable<String>, Encoding) |
Создает новый файл, используя указанную кодировку, записывает коллекцию строк в этот файл, затем закрывает файл. |
WriteAllLines(String, String[]) |
Создает новый файл, записывает в него указанный массив строк и затем закрывает файл. |
WriteAllLines(String, String[], Encoding) |
Создает новый файл, записывает указанный массив строк в этот файл, используя заданную кодировку, затем закрывает файл. |
WriteAllLinesAsync(String, IEnumerable<String>, CancellationToken) |
Асинхронно создает новый файл, записывает в него указанные строки и затем закрывает файл. |
WriteAllLinesAsync(String, IEnumerable<String>, Encoding, CancellationToken) |
Асинхронно создает новый файл, записывает указанные строки в этот файл, используя заданную кодировку, затем закрывает файл. |
WriteAllText(String, String) |
Создает новый файл, записывает в него указанную строку и затем закрывает файл. Если целевой файл уже существует, он усекается и перезаписывается. |
WriteAllText(String, String, Encoding) |
Создает новый файл, записывает указанную строку в этот файл, используя заданную кодировку, и затем закрывает файл. Если целевой файл уже существует, он усекается и перезаписывается. |
WriteAllTextAsync(String, String, CancellationToken) |
Асинхронно создает новый файл, записывает в него указанную строку и затем закрывает файл. Если целевой файл уже существует, он усекается и перезаписывается. |
WriteAllTextAsync(String, String, Encoding, CancellationToken) |
Асинхронно создает новый файл, записывает указанную строку в этот файл, используя заданную кодировку, и затем закрывает файл. Если целевой файл уже существует, он усекается и перезаписывается. |
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по