Using system io c что это
Перейти к содержимому

Using system io c что это

  • автор:

Пространство имен System.IO

Пространство имен System.IO в .NET — это область библиотек базовых классов, посвященная службам файлового ввода-вывода, а также ввода-вывода из памяти. Подобно любому пространству имен, в System.IO определен набор классов, интерфейсов, перечислений, структур и делегатов, большинство из которых находятся в mscorlib.dll. В дополнение к типам, содержащимся внутри mscorlib.dll, в сборке System.dll определены дополнительные члены пространства имен System.IO. Обратите внимание, что все проекты Visual Studio 2010 автоматически устанавливают ссылки на обе сборки.

Многие типы из пространства имен System.IO сосредоточены на программных манипуляциях физическими каталогами и файлами. Дополнительные типы предоставляют поддержку чтения и записи данных в строковые буферы, а также области памяти. Ниже кратко описаны основные (неабстрактные) классы, которые дают понятие о функциональности System.IO:

BinaryReader, BinaryWriter

Эти классы позволяют сохранять и извлекать элементарные типы данных (целочисленные, булевские, строковые и т.п.) в двоичном виде

BufferedStream

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

Directory, DirectoryInfo

Эти классы используются для манипуляций структурой каталогов машины. Тип Directory представляет функциональность, используя статические члены. Тип DirectoryInfo обеспечивает аналогичную функциональность через действительную объектную ссылку

DriveInfo

Этот класс предоставляет детальную информацию относительно дисковых устройств, используемых данной машиной

File, FileInfo

Эти классы служат для манипуляций множеством файлов данной машины. Тип File представляет функциональность через статические члены. Тип FileInfo обеспечивает аналогичную функциональность через действительную объектную ссылку

FileStream

Этот класс обеспечивает произвольный доступ к файлу (т.е. возможности поиска) с данными, представленными в виде потока байт

FileSystemWatcher

Этот класс позволяет отслеживать модификации внешних файлов в определенном каталоге

MemoryStream

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

Path

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

StreamWriter, StreamReader

Эти классы используются для хранения (и извлечения) текстовой информации из файла. Эти классы не поддерживают произвольного доступа к файлу

StringWriter, StringReader

Подобно классам StreamWriter/StreamReader, эти классы также работают с текстовой информацией. Однако лежащим в основе хранилищем является строковый буфер, а не физический файл

В дополнение к этим конкретным типам классов в System.IO определено несколько перечислений, а также набор абстрактных классов (т.е. Stream, TextReader и TextWriter), которые определяют разделяемый полиморфный интерфейс для всех наследников.

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

  • Классы Directory и File содержат только статические методы, а их экземпляры никогда не создаются. Для их использования нужно просто предоставить путь к интересующему объекту файловой системы при каждом вызове метода-члена. Если требуется выполнить только одну операцию в отношении папки или файла, то применение этих классов является наиболее эффективным подходом, поскольку позволяет избегать накладных расходов, связанных с созданием экземпляров.
  • Классы DirectoryInfo и FileInfo реализуют практически те же общедоступные методы, что и Directory и File, а также некоторые общедоступные свойства и конструкторы, но поддерживают состояние, а их члены не являются статическими. Сначала понадобится создать их экземпляр, который затем ассоциировать с определенной папкой или файлом. Это означает, что применение этих классов будет более эффективным подходом, если необходимо выполнять множество операций в отношении одного и того же объекта. Дело в том, что во время создания они считывают информацию об аутентификации и прочие сведения о соответствующем объекте файловой системы и больше не нуждаются в ее повторном чтении, сколько бы методов не вызывалось для данного объекта (экземпляра класса). В отличие от этого, классы, не поддерживающие состояние, нуждаются в проверке деталей, связанных с файлом или папкой, при каждом вызове какого-либо метода.

Обратите внимание на рисунке, что классы Directory и File непосредственно расширяют System.Object, в то время как DirectoryInfo и FileInfo наследуются от абстрактного класса FileSystemInfo:

Классы для работы с файлами и каталогами

Классы DirectoryInfo и FileInfo унаследовали значительную часть своего поведения от абстрактного базового класса FileSystemInfo. По большей части члены класса FileSystemInfo используются для получения общих характеристик (таких как время создания, различные атрибуты и т.д.) определенного файла или каталога. В таблице ниже перечислены некоторые основные свойства, представляющие интерес:

Свойство Назначение
Attributes Получает или устанавливает ассоциированные с текущим файлом атрибуты, которые представлены перечислением FileAttributes (доступный только для чтения, зашифрованный, скрытый или сжатый)
CreationTime Получает или устанавливает время создания текущего файла или каталога
Exists Может использоваться для определения, существует ли данный файл или каталог
Extension Извлекает расширение файла
FullName Получает полный путь к файлу или каталогу
LastAccessTime Получает или устанавливает время последнего доступа к текущему файлу или каталогу
LastWriteTime Получает или устанавливает время последней записи в текущий файл или каталог
Name Получает имя текущего файла или каталога

В классе FileSystemInfo также определен метод Delete(). Этот метод реализуется производными типами для удаления файла или каталога с жесткого диска. Кроме того, метод Refresh() может быть вызван перед получением информации об атрибутах, чтобы обеспечить актуальность состояния статистики о текущем файле или каталоге.

System. IO Пространство имен

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

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

Классы

Считывает примитивные типы данных как двоичные значения в заданной кодировке.

Записывает примитивные типы в двоичный поток и поддерживает запись строк в заданной кодировке.

Добавляет уровень буферизации в операциях чтения и записи в другие потоки. Этот класс не наследуется.

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

Предоставляет методы экземпляра класса для создания, перемещения и перечисления в каталогах и подкаталогах. Этот класс не наследуется.

Исключение, которое создается, когда не удается найти часть файла или каталога.

Предоставляет доступ к сведениям на диске.

Исключение вызывается при попытке доступа к недоступному диску или данным совместного использования.

Исключение, которое выдается при попытке чтения за концом потока.

Предоставляет параметры перечисления файлов и каталогов.

Предоставляет данные для события Error.

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

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

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

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

Исключение, которое выдается при попытке получить доступ к файлу или каталогу, которых нет на диске.

Предоставляет Stream в файле, поддерживая синхронные и асинхронные операции чтения и записи.

Определяет различные параметры конфигурации для FileStream.

Предоставляет предназначенные для платформы Windows статические методы расширения, которые служат для работы с атрибутами безопасности списков управления доступом (ACL) для файлов и каталогов.

Предоставляет данные для событий каталога: Changed, Created, Deleted.

Предоставляет базовый класс для объектов FileInfo и DirectoryInfo.

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

Исключение, которое создается при переполнении внутреннего буфера.

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

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

Исключение, которое выдается при возникновении ошибки ввода-вывода.

Создает поток, резервным хранилищем которого является память.

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

Исключение, которое создается, когда путь или полное имя файла длиннее, чем максимальная длина, определенная системой.

Создается при ошибке в именованном канале.

Предоставляет API на основе смещения для чтения и записи файлов потокобезопасным способом.

Предоставляет данные для события Renamed.

Предоставляет универсальное представление последовательности байтов. Этот класс является абстрактным.

Реализует объект TextReader, который считывает символы из потока байтов в определенной кодировке.

Реализует TextWriter для записи символов в поток в определенной кодировке.

Реализует класс TextReader, осуществляющий чтение из строки.

Реализует объект TextWriter для записи сведений в строку. Сведения хранятся в базовом StringBuilder.

Представляет средство чтения, позволяющее считывать последовательные наборы символов.

Представляет модуль записи, который может записывать последовательные наборы символов. Это абстрактный класс.

Предоставляет произвольный доступ к неуправляемым блокам памяти из управляемого кода.

Предоставляет доступ к неуправляемым блокам памяти из управляемого кода.

Содержит методы расширения для интерфейсов IStorageFile и IStorageFolder в среде выполнения Windows при разработке приложений для Магазина приложений Windows.

Содержит методы расширения для преобразования между потоками в среде выполнения Windows и управляемыми потоками в .NET для приложений Магазина Windows.

Структуры

Содержит сведения о произошедшем изменении.

Перечисления

Определяет постоянные величины для типов дисков, включая CDRom, Fixed, Network, NoRootDirectory, Ram, Removable и Unknown.

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

Предоставляет атрибуты для файлов и каталогов.

Указывает, каким образом операционная система должна открыть файл.

Представляет дополнительные параметры для создания объекта FileStream.

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

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

Указывает тип регистра символов для сопоставления.

Указывает используемый тип сопоставления с подстановочными знаками.

Задает изменения, наблюдаемые в файле или папке.

Указывает, следует ли выполнять поиск в текущем каталоге или в текущем каталоге и всех подкаталогах.

Задает позицию в потоке, используемую для поиска.

Представляет разрешения файловой системы Unix.

Это перечисление поддерживает побитовую комбинацию значений его членов.

Возможные изменения в файле или каталоге.

Делегаты

Предоставляет метод, обрабатывающий событие Error объекта FileSystemWatcher.

Представляет метод, обрабатывающий события Changed, Created или Deleted класса FileSystemWatcher.

Представляет метод, обрабатывающий событие Renamed класса FileSystemWatcher.

Совместная работа с нами на GitHub

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

Обратная связь

Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе https://aka.ms/ContentUserFeedback.

Отправить и просмотреть отзыв по

Значок отказа согласно Закону Калифорнии о защите конфиденциальности потребителей (CCPA)

  • Светлая
  • Темная
  • Высокая контрастность
  • Предыдущие версии
  • Блог
  • Участие в доработке
  • Конфиденциальность
  • Условия использования
  • Товарные знаки
  • © Microsoft 2024

Дополнительные ресурсы

Значок отказа согласно Закону Калифорнии о защите конфиденциальности потребителей (CCPA)

  • Светлая
  • Темная
  • Высокая контрастность
  • Предыдущие версии
  • Блог
  • Участие в доработке
  • Конфиденциальность
  • Условия использования
  • Товарные знаки
  • © Microsoft 2024

File Класс

Пространство имен: System.IO Сборки: mscorlib.dll, System.IO.FileSystem.dll Сборка: System.IO.FileSystem.dll Сборка: System.Runtime.dll Сборка: mscorlib.dll Сборка: netstandard.dll Исходный код: File.cs Исходный код: File.cs Исходный код: File.cs

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

Предоставляет статические методы для создания, копирования, удаления, перемещения и открытия одного файла, а также помогает при создании объектов 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
[] type File = class
Public Class File
Public NotInheritable Class 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( "was copied to .", path, path2 ); // Delete the newly created file. File::Delete( path2 ); Console::WriteLine( " was successfully deleted.", path2 ); > catch ( Exception^ e ) < Console::WriteLine( "The process failed: ", 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  
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.

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

Методы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Получает объект FileSecurity, инкапсулирующий записи списка ACL определенного типа для конкретного файла.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задает заданный UnixFileMode дескриптор файла.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Using system io c что это

Все классы существуют в некотором пространстве имен, и чтобы эти классы использовать, необходимо подключить их пространства имен, либо использовать полное название класса с указанием его пространства имен. Однако начиная с Visual Studio 2022 и .NET 6 и C# 10 мы можем просто в файле программы написать:

Console.WriteLine("Hello");

При этом не подключая явно пространство имен System , где располагается класс Console , тем не менее этот класс будет доступен, и мы его сможем использовать в любом файле кода C# в проекте. Дело в том, что начиная с .NET 6 в проекте по умолчанию подключается ряд наиболее часто используемых пространств имен, поэтому нам их не надо явно подключать. Эта настройка действует на уровне всего проекта. Так, откроем файл проекта. Для этого либо двойным кликом левой кнопкой мыши нажмем на проект, либо нажмем на проект правой кнопкой мыши и в появившемся меню выберем пункт Edit Project File

ImplicitUsings в C# в Visual Studio

После этого Visual Studio откроет нам файл проекта, который будет выглядеть примерно следующим образом:

  Exe net6.0 enable enable   
enable

точнее элемент задает подключение некоторого набора пространств имен по умолчанию. Значение enable указывает, что эта настройка будет применяться.

Если мы запустим проект на выполнение, то после компиляции проект в проекте в папке obj/Debug/net6.0 можно будет увидеть файл [Имя_проекта].GlobalUsings.g.cs (например, у меня проект называется HelloApp, соответственно файл будет называться HelloApp.GlobalUsings.g.cs ). Если мы откроем этот файл, то увидим там следующее содержимое:

global using global::System; global using global::System.Collections.Generic; global using global::System.IO; global using global::System.Linq; global using global::System.Net.Http; global using global::System.Threading; global using global::System.Threading.Tasks;

Здесь перечислены все те пространства имен, которые подключаются в проект по умолчанию:

System System.Collections.Generic System.IO System.Linq System.Net.Http System.Threading System.Threading.Tasks

Стоит отметить, что это набор пространств имен, которые подключаются в проект консольного приложения по умолчанию, у других типов проектов набор подключаемых пространств может отличаться.

Отключение пространств по умолчанию

В проектах, создаваемых в Visual Studio 2022 для .NET 6 и C# 10 эта возможность включена по умолчанию. Тем не менее при необходимости мы ее можем отключить. Для этого изменим эту настройку следующим образом:

disable

После этого Visual Studio 2022 подчеркнет нам класс Console , так как он нигде не определен в проекте, а его пространство имен не подключено:

ImplicitUsings в .NET 6 и C# 10 в Visual Studio 2022

В этом случае нам потребуется либо подключить пространство имен System , где располагается класс Console, либо использовать его полное имя:

using System; // или подключить пространство System Console.WriteLine("Hello world"); // или использовать полное имя класса System.Console.WriteLine("Hello work");

Подключение и отключение пространств по отдельности

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

  Exe net6.0 disable enable      

Здесь атрибут Include элемента Using подключает пространства имен глобально по всему проекту. Например:

Подключает пространство System. Соответственно после этого нам не надо его подключать в файлы кода в проекте.

Обратная ситуация - отключение некоторых ненужных пространств имен из тех, которые подключаются по умолчанию. Для этого применяется атрибут Remove элемента Using :

  Exe net6.0 enable enable      

В данном случае отключаются пространства "System" и "System.Threading.Tasks"

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *