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 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 методов.

Перечисление Description
FileAccess Указывает доступ на чтение и запись к файлу.
FileShare Указывает уровень доступа, разрешенный для файла, который уже используется.
FileMode Указывает, сохраняется ли содержимое существующего файла или перезаписывается, а также указывает, вызывают ли запросы на создание существующего файла исключение.

Note

В членах, которые принимают путь в качестве входной строки, этот путь должен быть хорошо сформирован или создается исключение. Например, если путь является полным, но начинается с пробела, путь не обрезается в методах класса. Таким образом, путь неправильно сформирован и возникает исключение. Аналогичным образом, путь или сочетание путей не может быть полностью полный дважды. Например, "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[])

Добавляет указанный массив байтов в конец файла по указанному пути.

Если файл не существует, этот метод создает новый файл.

AppendAllBytes(String, ReadOnlySpan<Byte>)

Добавляет указанный массив байтов в конец файла по указанному пути.

Если файл не существует, этот метод создает новый файл.

AppendAllBytesAsync(String, Byte[], CancellationToken)

Асинхронно добавляет указанный массив байтов в конец файла по указанному пути.

Если файл не существует, этот метод создает новый файл. Если операция отменена, задача возвращается в отмененном состоянии.

AppendAllBytesAsync(String, ReadOnlyMemory<Byte>, CancellationToken)

Асинхронно добавляет указанный массив байтов в конец файла по указанному пути.

Если файл не существует, этот метод создает новый файл. Если операция отменена, задача возвращается в отмененном состоянии.

AppendAllLines(String, IEnumerable<String>, Encoding)

Добавляет строки в файл с помощью указанной кодировки, а затем закрывает файл. Если указанный файл не существует, этот метод создает файл, записывает указанные строки в файл, а затем закрывает файл.

AppendAllLines(String, IEnumerable<String>)

Добавляет строки в файл, а затем закрывает файл. Если указанный файл не существует, этот метод создает файл, записывает указанные строки в файл, а затем закрывает файл.

AppendAllLinesAsync(String, IEnumerable<String>, CancellationToken)

Асинхронно добавляет строки в файл, а затем закрывает файл. Если указанный файл не существует, этот метод создает файл, записывает указанные строки в файл, а затем закрывает файл.

AppendAllLinesAsync(String, IEnumerable<String>, Encoding, CancellationToken)

Асинхронно добавляет строки в файл с помощью указанной кодировки, а затем закрывает файл. Если указанный файл не существует, этот метод создает файл, записывает указанные строки в файл, а затем закрывает файл.

AppendAllText(String, ReadOnlySpan<Char>, Encoding)

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

AppendAllText(String, ReadOnlySpan<Char>)

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

AppendAllText(String, String, Encoding)

Добавляет указанную строку в файл с помощью указанной кодировки, создавая файл, если он еще не существует.

AppendAllText(String, String)

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

AppendAllTextAsync(String, ReadOnlyMemory<Char>, CancellationToken)

Асинхронно открывает файл или создает файл, если он еще не существует, добавляет указанную строку в файл и закрывает файл.

AppendAllTextAsync(String, ReadOnlyMemory<Char>, Encoding, CancellationToken)

Асинхронно открывает файл или создает файл, если он еще не существует, добавляет указанную строку в файл с помощью указанной кодировки, а затем закрывает файл.

AppendAllTextAsync(String, String, CancellationToken)

Асинхронно открывает файл или создает файл, если он еще не существует, добавляет указанную строку в файл и закрывает файл.

AppendAllTextAsync(String, String, Encoding, CancellationToken)

Асинхронно открывает файл или создает файл, если он еще не существует, добавляет указанную строку в файл с помощью указанной кодировки, а затем закрывает файл.

AppendText(String)

StreamWriter Создает текст в кодировке UTF-8 к существующему файлу или новый файл, если указанный файл не существует.

Copy(String, String, Boolean)

Копирует существующий файл в новый файл. Допускается перезапись файла с тем же именем.

Copy(String, String)

Копирует существующий файл в новый файл. Перезапись файла с тем же именем запрещена.

Create(String, Int32, FileOptions, FileSecurity)

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

Create(String, Int32, FileOptions)

Создает или перезаписывает файл в указанном пути, указывая размер буфера и параметры, описывающие создание или перезапись файла.

Create(String, Int32)

Создает или усечение и перезаписывает файл в указанном пути, указывая размер буфера.

Create(String)

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

CreateHardLink(String, String)

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

CreateSymbolicLink(String, String)

Создает символьную ссылку файла, определяемую path данными pathToTarget.

CreateText(String)

Создает или открывает файл для записи в кодировке UTF-8. Если файл уже существует, его содержимое заменяется.

Decrypt(String)

Расшифровывает файл, зашифрованный текущей учетной записью Encrypt(String) с помощью метода.

Delete(String)

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

Encrypt(String)

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

Exists(String)

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

GetAccessControl(String, AccessControlSections)

FileSecurity Возвращает объект, инкапсулирующий указанный тип записей списка управления доступом (ACL) для определенного файла.

GetAccessControl(String)

FileSecurity Возвращает объект, инкапсулирующий записи списка управления доступом (ACL) для указанного файла.

GetAttributes(SafeFileHandle)

Возвращает указанный FileAttributes файл или каталог, связанный с fileHandle.

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, Boolean)

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

Move(String, String)

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

Open(String, FileMode, FileAccess, FileShare)

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

Open(String, FileMode, FileAccess)

Открывает FileStream по указанному пути с указанным режимом и доступом без общего доступа.

Open(String, FileMode)

Открывает FileStream по указанному пути с доступом на чтение и запись без общего доступа.

Open(String, FileStreamOptions)

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

OpenHandle(String, FileMode, FileAccess, FileShare, FileOptions, Int64)

Инициализирует новый экземпляр SafeFileHandle класса с указанным путем, режимом создания, разрешением на чтение и запись и общий доступ, доступ к другому файлу SafeFileHandles может иметь один и тот же файл, дополнительные параметры файла и размер выделения.

OpenNullHandle()

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

OpenRead(String)

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

OpenText(String)

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

OpenWrite(String)

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

ReadAllBytes(String)

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

ReadAllBytesAsync(String, CancellationToken)

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

ReadAllLines(String, Encoding)

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

ReadAllLines(String)

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

ReadAllLinesAsync(String, CancellationToken)

Асинхронно открывает текстовый файл, считывает все строки файла, а затем закрывает файл.

ReadAllLinesAsync(String, Encoding, CancellationToken)

Асинхронно открывает текстовый файл, считывает все строки файла с указанным кодировкой, а затем закрывает файл.

ReadAllText(String, Encoding)

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

ReadAllText(String)

Открывает текстовый файл, считывает весь текст в файле, а затем закрывает файл.

ReadAllTextAsync(String, CancellationToken)

Асинхронно открывает текстовый файл, считывает весь текст в файле, а затем закрывает файл.

ReadAllTextAsync(String, Encoding, CancellationToken)

Асинхронно открывает текстовый файл, считывает весь текст в файле с указанным кодировкой, а затем закрывает файл.

ReadLines(String, Encoding)

Чтение строк файла с заданным кодировкой.

ReadLines(String)

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

ReadLinesAsync(String, CancellationToken)

Асинхронно считывает строки файла.

ReadLinesAsync(String, Encoding, CancellationToken)

Асинхронно считывает строки файла с заданным кодировкой.

Replace(String, String, String, Boolean)

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

Replace(String, String, String)

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

ResolveLinkTarget(String, Boolean)

Возвращает целевой объект указанной ссылки на файл.

SetAccessControl(String, FileSecurity)

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

SetAttributes(SafeFileHandle, FileAttributes)

Задает указанный FileAttributes файл или каталог, связанный с fileHandle.

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[])

Создает новый файл, записывает указанный массив байтов в файл, а затем закрывает файл. Если целевой файл уже существует, он усечен и перезаписан.

WriteAllBytes(String, ReadOnlySpan<Byte>)

Создает новый файл, записывает указанный массив байтов в файл, а затем закрывает файл. Если целевой файл уже существует, он усечен и перезаписан.

WriteAllBytesAsync(String, Byte[], CancellationToken)

Асинхронно создает новый файл, записывает указанный массив байтов в файл, а затем закрывает файл. Если целевой файл уже существует, он усечен и перезаписан.

WriteAllBytesAsync(String, ReadOnlyMemory<Byte>, CancellationToken)

Асинхронно создает новый файл, записывает указанный массив байтов в файл, а затем закрывает файл. Если целевой файл уже существует, он усечен и перезаписан.

WriteAllLines(String, IEnumerable<String>, Encoding)

Создает новый файл с помощью указанной кодировки, записывает коллекцию строк в файл, а затем закрывает файл.

WriteAllLines(String, IEnumerable<String>)

Создает новый файл, записывает коллекцию строк в файл, а затем закрывает файл.

WriteAllLines(String, String[], Encoding)

Создает новый файл, записывает указанный массив строк в файл с помощью указанной кодировки, а затем закрывает файл.

WriteAllLines(String, String[])

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

WriteAllLinesAsync(String, IEnumerable<String>, CancellationToken)

Асинхронно создает новый файл, записывает указанные строки в файл, а затем закрывает файл.

WriteAllLinesAsync(String, IEnumerable<String>, Encoding, CancellationToken)

Асинхронно создает новый файл, записывает указанные строки в файл с помощью указанной кодировки, а затем закрывает файл.

WriteAllText(String, ReadOnlySpan<Char>, Encoding)

Создает новый файл, записывает указанную строку в файл с помощью указанной кодировки, а затем закрывает файл.

Если целевой файл уже существует, он усечен и перезаписан.

WriteAllText(String, ReadOnlySpan<Char>)

Создает файл, записывает указанную строку в файл, а затем закрывает файл.

Если целевой файл уже существует, он усечен и перезаписан.

WriteAllText(String, String, Encoding)

Создает новый файл, записывает указанную строку в файл с помощью указанной кодировки, а затем закрывает файл. Если целевой файл уже существует, он усечен и перезаписан.

WriteAllText(String, String)

Создает файл, записывает указанную строку в файл, а затем закрывает файл. Если целевой файл уже существует, он усечен и перезаписан.

WriteAllTextAsync(String, ReadOnlyMemory<Char>, CancellationToken)

Асинхронно создает новый файл, записывает указанную строку в файл, а затем закрывает файл.

Если целевой файл уже существует, он усечен и перезаписан.

WriteAllTextAsync(String, ReadOnlyMemory<Char>, Encoding, CancellationToken)

Асинхронно создает новый файл, записывает указанную строку в файл с помощью указанной кодировки, а затем закрывает файл.

Если целевой файл уже существует, он усечен и перезаписан.

WriteAllTextAsync(String, String, CancellationToken)

Асинхронно создает новый файл, записывает указанную строку в файл, а затем закрывает файл. Если целевой файл уже существует, он усечен и перезаписан.

WriteAllTextAsync(String, String, Encoding, CancellationToken)

Асинхронно создает новый файл, записывает указанную строку в файл с помощью указанной кодировки, а затем закрывает файл. Если целевой файл уже существует, он усечен и перезаписан.

Применяется к

См. также раздел