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

FileMode.Truncate

FileMode.Truncate требует, чтобы abcde.txt уже был. Длина становится 0, новые байты пишутся с начала. Если файла нет - ошибка, как у Open. См. FileNotFoundException.

Синтаксис

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

Пример

Давайте обнулим файл с текстом:

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

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

0 0

Пример

Давайте записать новые байты после обнуления:

using System; using System.IO; using System.Text; class Program { static void Main() { File.WriteAllText("abcde.txt", "12345"); using (FileStream stream = File.Open( "abcde.txt", FileMode.Truncate, FileAccess.Write)) { byte[] data = Encoding.UTF8.GetBytes("abcde"); stream.Write(data, 0, data.Length); } string res = File.ReadAllText("abcde.txt"); Console.WriteLine(res); File.Delete("abcde.txt"); } }

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

"abcde"

Пример

Давайте отличить Truncate от Create по длине до открытия:

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

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

5 0

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

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить