Вы находитесь на странице: 1из 14

File - класс

.NET Framework 4.6 and 4.5


Другие версии

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

Иерархия наследования
System.Object 
  System.IO.File
Пространство имен:  System.IO
Сборка:  mscorlib (в mscorlib.dll)

Синтаксис
C#
C++
F#
VB
[ComVisibleAttribute(true)]
public static class File

Тип File предоставляет следующие члены.

Методы

  Имя Описание

AppendAllLines(String, Добавляет строки в файл, затем закрывает файл. Если указанный файл не существует, этот
IEnumerable<String>) метод создает файл, записывает указанные строки в файл и затем закрывает файл.

AppendAllLines(String, Добавляет строки в файл, используя заданную кодировку, затем закрывает файл. Если
IEnumerable<String>, Encoding) указанный файл не существует, этот метод создает файл, записывает указанные строки в
файл и затем закрывает файл.

AppendAllText(String, String) Открывает файл, добавляет в него указанную строку и затем закрывает файл. Если файл
не существует, этот метод создает файл, записывает в него указанную строку и затем
закрывает файл.

AppendAllText(String, String, Добавляет указанную строку в файл, создавая файл, если он не существует.
Encoding)

AppendText Создает объект StreamWriter, который добавляет текст с кодировкой UTF-8 в


существующий файл, или в новый файл, если указанный файл не существует.

Copy(String, String) Копирует существующий файл в новый файл. Перезапись файла с тем же именем не
разрешена.
Copy(String, String, Boolean) Копирует существующий файл в новый файл. Перезапись файла с тем же именем
разрешена.

Create(String) Создает или перезаписывает файл по указанному пути.

Create(String, Int32) Создает или перезаписывает указанный файл.

Create(String, Int32, FileOptions) Создает или перезаписывает указанный файл, определяя размер буфера и
значение FileOptions, которое описывает, как создавать или перезаписывать файл.

Create(String, Int32, FileOptions, Создает или перезаписывает указанный файл с заданным размером буфера, параметрами
FileSecurity) файла и уровнем безопасности.

CreateText Создается или открывается файл для записи текста в кодировке UTF-8.
Decrypt Расшифровывает файл, зашифрованный текущей учетной записью с помощью
метода Encrypt.

Delete Удаляет указанный файл.

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

Exists Определяет, существует ли заданный файл.

GetAccessControl(String) Получает объект FileSecurity, который инкапсулирует записи списка ACL для заданного
файла.

GetAccessControl(String, Получает объект FileSecurity, который инкапсулирует записи списка ACL определенного


AccessControlSections) типа для конкретного файла.
GetAttributes Получает значение FileAttributes для файла в пути.

GetCreationTime Возвращает дату и время создания заданного файла или каталога.

GetCreationTimeUtc Возвращает дату и время создания заданного файла или каталога в формате общего
скоординированного времени (UTC).

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

GetLastAccessTimeUtc Возвращает дату и время последнего доступа к заданному файлу или каталогу в формате
общего скоординированного времени (UTC).

GetLastWriteTime Возвращает время и дату последней операции записи в указанный файл или каталог.
GetLastWriteTimeUtc Возвращает дату и время последней операции записи в заданный файл или каталог в
формате общего скоординированного времени (UTC).

Move Перемещает заданный файл в новое местоположение и разрешает переименование файла.

Open(String, FileMode) Открывает объект FileStream по указанному пути с доступом для чтения и записи.

Open(String, FileMode, FileAccess) Открывает FileStream в заданном пути с заданным режимом и доступом.

Open(String, FileMode, FileAccess, Открывает FileStream в заданном пути, с заданным режимом доступа для чтения, записи
FileShare) или чтения и записи и с заданным параметром совместного использования.

OpenRead Открывает для чтения существующий файл.


OpenText Открывает для чтения существующий файл, содержащий текст в кодировке UTF-8.

OpenWrite Открывает существующий файл или создает новый файл для записи.

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

ReadAllLines(String) Открывает текстовый файл, считывает все строки файла и затем закрывает файл.

ReadAllLines(String, Encoding) Открывает файл, считывает все строки файла с заданной кодировкой и затем закрывает
файл.

ReadAllText(String) Открывает текстовый файл, считывает все строки файла и затем закрывает файл.

ReadAllText(String, Encoding) Открывает файл, считывает все строки файла с заданной кодировкой и затем закрывает
файл.

ReadLines(String) Считывает строки файла.

ReadLines(String, Encoding) Считывает строки файла с заданной кодировкой.

Replace(String, String, String) Заменяет содержимое заданного файла на содержимое другого файла, удаляя исходный
файл и создавая резервную копию замененного файла.

Replace(String, String, String, Boolean) Заменяет содержимое заданного файла на содержимое другого файла, удаляя исходный
файл и создавая резервную копию замененного файла, и при необходимости игнорирует
ошибки слияния.

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


указанному файлу.

SetAttributes Устанавливает заданные атрибуты FileAttributes файла по заданному пути.


SetCreationTime Устанавливает дату и время создания файла.

SetCreationTimeUtc Устанавливает дату и время создания файла, представленные в формате общего


скоординированного времени (UTC).

SetLastAccessTime Устанавливаются дата и время последнего доступа к заданному файлу.

SetLastAccessTimeUtc Устанавливает дату и время последнего доступа к заданному файлу в формате общего
скоординированного времени (UTC).

SetLastWriteTime Устанавливаются дата и время последней операции записи в заданный файл.

SetLastWriteTimeUtc Устанавливает дату и время последней операции записи в заданный файл в формате
общего скоординированного времени (UTC).
WriteAllBytes Создает новый файл, записывает в него указанный массив байтов и затем закрывает
файл. Если целевой файл уже существует, он будет перезаписан.

WriteAllLines(String, Создает новый файл, записывает в него коллекцию строк, затем закрывает файл.
IEnumerable<String>)

WriteAllLines(String,String[]) Создает новый файл, записывает в него указанный массив строк и затем закрывает файл.

WriteAllLines(String, Создает новый файл, используя указанную кодировку, записывает коллекцию строк в этот
IEnumerable<String>, Encoding) файл, затем закрывает файл.

WriteAllLines(String,String[], Создает новый файл, записывает указанный массив строк в этот файл, используя заданную
Encoding) кодировку, затем закрывает файл.

WriteAllText(String, String) Создает новый файл, записывает в него указанную строку и затем закрывает файл. Если
целевой файл уже существует, он будет перезаписан.
WriteAllText(String, String, Encoding) Создает новый файл, записывает указанную строку в этот файл, используя заданную
кодировку, и затем закрывает файл. Если целевой файл уже существует, он будет
перезаписан.

В начало страницы

Заметки
Используйте класс File для обычных операций, таких как копирование, перемещение, переименование, создание, открытие, удаление файла, а также
добавление данных в файлы. Класс File можно также использовать для получения и задания атрибутов или сведений DateTime, связанных с созданием
файла, доступом к нему и записью в файл.
Многие из методов 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.
Список наиболее распространенных задач ввода-вывода содержится в разделе Распространенные задачи ввода-вывода.

Примеры
В следующем примере показано, как использовать класс File чтобы проверить, существует ли файл, и в зависимости от результата или создать новый файл и
записать в него или открыть существующий файл и читать из него.
C++
VB

C#

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);
}
}
}
}

Сведения о версии
.NET Framework
Поддерживается в версиях: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0
.NET Framework (клиентский профиль)
Поддерживается в версиях: 4, 3.5 с пакетом обновления 1 (SP1)

Платформы
Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль
основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете
обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)
Среда .NET Framework поддерживает не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET
Framework.
Потокобезопасность
Любые открытые static (Shared в Visual Basic) члены этого типа являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также
Ссылки
System.IO - пространство имен
DriveInfo
FileSystemWatcher
Другие ресурсы
Файловый и потоковый ввод-вывод
Практическое руководство. Считывание текста из файла
Практическое руководство. Запись текста в файл
Практическое руководство. Считывание из нового файла данных и запись в этот файл