Поделиться через


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

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

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

AppendAllBytes(String, ReadOnlySpan<Byte>)

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

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

AppendAllBytesAsync(String, Byte[], CancellationToken)

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

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

AppendAllBytesAsync(String, ReadOnlyMemory<Byte>, CancellationToken)

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

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

AppendAllLines(String, IEnumerable<String>)

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

AppendAllLines(String, IEnumerable<String>, Encoding)

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

AppendAllLinesAsync(String, IEnumerable<String>, CancellationToken)

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

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

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

AppendAllText(String, ReadOnlySpan<Char>)

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

AppendAllText(String, ReadOnlySpan<Char>, Encoding)

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

AppendAllText(String, String)

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

AppendAllText(String, String, Encoding)

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

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)

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

Copy(String, String, Boolean)

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

Create(String)

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

Create(String, Int32)

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

Create(String, Int32, FileOptions)

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

Create(String, Int32, FileOptions, FileSecurity)

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

CreateSymbolicLink(String, String)

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

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 файла или каталога, связанного с 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)

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

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 файла или каталога, связанного с 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>)

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

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, ReadOnlySpan<Char>)

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

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

WriteAllText(String, ReadOnlySpan<Char>, Encoding)

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

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

WriteAllText(String, String)

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

WriteAllText(String, String, Encoding)

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

WriteAllTextAsync(String, ReadOnlyMemory<Char>, CancellationToken)

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

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

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

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

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

WriteAllTextAsync(String, String, CancellationToken)

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

WriteAllTextAsync(String, String, Encoding, CancellationToken)

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

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

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