C# Запис

2075 / C# / Запис

 
1.
using System.IO;
File.WriteAllText(@"D:\MyCSharp\1.txt", "Текст");

2.
using (string fileName = @"D:\MyCSharp\1.txt") {
  StreamWriter sw = File.AppendText(fileName);
  sw.WriteLine("Лінія 1");
  sw.WriteLine("Лінія 2");
  sw.WriteLine("Лінія 3");
}

sw.Close() - закриває файл і звільняє всі ресурси
sw.Flush() - записує в файл данні з буферу і очищує буфер

3.
using (StreamWriter sw = new StreamWriter("Dirs.txt")) {
  foreach (DirectoryInfo dir in dirArr) {
    sw.WriteLine(dir.Name);
  }
}
// sw.Close(), sw.Flush() - не потрібні

4.
string[] lines = new string[]{"Лінія 1", "Лінія 2", "Лінія 3"};
File.WriteAllLines(@"D:\MyCSharp\1.txt", lines);

5.
string fileName = @"D:\My\1.txt";
File.AppendAllLines(fileName, "Лінія 1");
File.AppendAllLines(fileName, "Лінія 2");
File.AppendAllLines(fileName, "Лінія 3");

6.
string[] moreLines = new string[]{"Лінія 1", "Лінія 2", "Лінія 3"};
File.AppendAllLines(@"D:\MyCSharp\1.txt", moreLines);

Перевірка
if (File.Exists(path)){ // !File.Exists(path)
}

Видалити файл
File.Delete(path); // якщо видалити кілька разів, помилка не генерується

Створити і видалити папку
Directory.CreateDirectory(path);
Directory.Delete(path); // якщо видалити кілька разів - буде помилка

Текстові файли (без підтек)
DirectoryInfo d = new DirectoryInfo(@"D:\Test");
FileInfo[] files = d.GetFiles("*.txt");

foreach(FileInfo file in files)
{
  Console.WriteLine(file.Name);
}

Лише файли що закінчуються на a (і в підтеках)
string[] directoryEntries = Directory.GetFileSystemEntries(".", "*a");

Теки
var directories = Directory.GetDirectories(path);

Файл чи тека?
FileAttributes attr = File.GetAttributes(@"c:\Temp");

if (attr.HasFlag(FileAttributes.Directory)) {
  Console.WriteLine("Тека");
}
else 
{
  Console.WriteLine("Файл");
}

Створити теку
Directory.CreateDirectory(path);