FileMode.CreateNew
FileMode.CreateNew создаёт пустой
abcde.txt. Если файл уже существует,
бросается IOException - в отличие от
Create,
который перезаписывает. Вызов через
File.Open.
Синтаксис
using FileStream stream = File.Open(path, FileMode.CreateNew);
Пример
Давайте создадим файл впервые:
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.CreateNew))
{
Console.WriteLine(stream.Length);
}
File.Delete("abcde.txt");
}
}
Результат выполнения кода:
0
Пример
Давайте поймаем сбой, если файл уже есть:
using System;
using System.IO;
class Program
{
static void Main()
{
File.WriteAllText("abcde.txt", "abcde");
try
{
using (FileStream stream = File.Open("abcde.txt", FileMode.CreateNew))
{
}
}
catch (IOException)
{
Console.WriteLine("fail");
}
File.Delete("abcde.txt");
}
}
Результат выполнения кода:
"fail"
Пример
Давайте сравним с успешным CreateNew:
using System;
using System.IO;
class Program
{
static void Main()
{
if (File.Exists("12345.txt"))
{
File.Delete("12345.txt");
}
using (FileStream stream = File.Open("12345.txt", FileMode.CreateNew))
{
Console.WriteLine(File.Exists("12345.txt"));
}
File.Delete("12345.txt");
}
}
Результат выполнения кода:
True