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