Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
767 of 1492 menu
◀ ▶

FileMode.OpenOrCreate

FileMode.OpenOrCreate не обнуляет существующий abcde.txt - в отличие от Create. Если файла нет, он появляется с длиной 0. Передают в File.Open.

Синтаксис

using FileStream stream = File.Open(path, FileMode.OpenOrCreate);

Пример

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

using System; using System.IO; class Program { static void Main() { File.WriteAllText("abcde.txt", "abcde"); using (FileStream stream = File.Open("abcde.txt", FileMode.OpenOrCreate)) { Console.WriteLine(stream.Length); } File.Delete("abcde.txt"); } }

Результат выполнения кода:

5

Пример

Давайте создадим файл, если его ещё нет:

using System; using System.IO; class Program { static void Main() { if (File.Exists("abcde.txt")) { File.Delete("abcde.txt"); } using (FileStream stream = File.Open("abcde.txt", FileMode.OpenOrCreate)) { Console.WriteLine(stream.Length); } File.Delete("abcde.txt"); } }

Результат выполнения кода:

0

Пример

Давайте сравним с Create на том же файле:

using System; using System.IO; class Program { static void Main() { File.WriteAllText("abcde.txt", "12345"); using (FileStream stream = File.Open("abcde.txt", FileMode.Create)) { } int afterCreate = File.ReadAllText("abcde.txt").Length; File.WriteAllText("abcde.txt", "12345"); using (FileStream stream = File.Open("abcde.txt", FileMode.OpenOrCreate)) { } int afterOpenOrCreate = File.ReadAllText("abcde.txt").Length; Console.WriteLine(afterCreate); Console.WriteLine(afterOpenOrCreate); File.Delete("abcde.txt"); } }

Результат выполнения кода:

0 5

Смотрите также

  • Open,
    только существующий
  • Create,
    с обнулением
  • FileMode,
    остальные режимы
  • File.Open,
    вызов с OpenOrCreate
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить