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)

Создает символьную ссылку на файл, определяемую параметром 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[])

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

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)

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

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

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