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

Список распространенных задач ввода-вывода см. в разделе "Общие задачи ввода-вывода".

Методы

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(String)

Получает значение FileAttributes для файла в пути.

GetCreationTime(String)

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

GetCreationTimeUtc(String)

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

GetLastAccessTime(String)

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

GetLastAccessTimeUtc(String)

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

GetLastWriteTime(String)

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

GetLastWriteTimeUtc(String)

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

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 класса с указанным путем, режимом создания, разрешением на чтение и запись и общий доступ, доступ к другим fileStreams может иметь тот же файл, размер буфера, дополнительные параметры файла и размер выделения.

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)

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

Replace(String, String, String)

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

Replace(String, String, String, Boolean)

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

ResolveLinkTarget(String, Boolean)

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

SetAccessControl(String, FileSecurity)

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

SetAttributes(String, FileAttributes)

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

SetCreationTime(String, DateTime)

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

SetCreationTimeUtc(String, DateTime)

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

SetLastAccessTime(String, DateTime)

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

SetLastAccessTimeUtc(String, DateTime)

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

SetLastWriteTime(String, DateTime)

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

SetLastWriteTimeUtc(String, DateTime)

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

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)

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

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

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