FileInfo

Этот класс предназначен для работы с файлами.
Подключить пространство имен System.IO.
наиболее часто используемые члены класса
Exists проверяет, существует ли файл по заданному пути
Name возвращает имя файла
DirectoryName возвращает имя корневой директории
Extension возвращает расширение файла
FullName возвращает полный путь к файлу
Length возвращает размер файла в байтах
IsReadOnly true — файл только для чтения, false — для записи и для чтения
CreationTime возвращает или задает время создания файла
LastWriteTime возвращает время последней записи в файл
Create() создает файл, если такой существует, перезаписывает его
CreateText() создает файл, записывает в него текст;
если файл существует, то удаляет в нем старый текст и записывает новый
AppendText() дописывает текст в конец файла
Delete() удаляет файл, без возможности восстановления
CopyTo(path, bool) копирует существующий файл в новый файл;
true — разрешает перезапись старого файла, false — не разрешает
Replace() заменяет содержимое указанного файла, содержимым другого файла, другой файл удаляется
MoveTo(path) перемещает файл по заданному пути
Open(mode, access, share) открывает файл и задает режим, доступ, параметр доступа;
метод возвращает объект FileStream, работающий с байтовыми потоками
 
 

Exists

Свойство проверяет, существует ли файл по заданному пути.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    Console.WriteLine("такой файл существует");
  •   }
  •   else {
  •    Console.WriteLine("такой файл не существует");
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
такой файл существует
 
 

Name

Свойство возвращает имя файла.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    Console.WriteLine(FI.Name);
  •   }
  •   else {
  •    Console.WriteLine("такой файл не существует");
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
a.txt
 
 

DirectoryName

Свойство возвращает имя корневой директории.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    Console.WriteLine(FI.DirectoryName);
  •   }
  •   else {
  •    Console.WriteLine("такой файл не существует");
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
D:\zzz
 
 

Extension

Свойство возвращает расширение файла.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    Console.WriteLine(FI.Extension);
  •   }
  •   else {
  •    Console.WriteLine("такой файл не существует");
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
.txt
 
 

FullName

Свойство возвращает полный путь к файлу.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    Console.WriteLine(FI.FullName);
  •   }
  •   else {
  •    Console.WriteLine("такой файл не существует");
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
D:\zzz\a.txt
 
 

Length

Свойство возвращает размер файла в байтах.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    Console.WriteLine("{0} байт", FI.Length);
  •   }
  •   else {
  •    Console.WriteLine("такой файл не существует");
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
34 байт
 
 

IsReadOnly

Свойство устанавливает или задает значение true — файл только для чтения, false — для записи и для чтения.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    if(FI.IsReadOnly) {
  •     Console.WriteLine("файл доступен только для чтения");
  •    }
  •    else {
  •     Console.WriteLine("файл доступен для чтения и для записи");
  •    }
  •   }
  •   else {
  •    Console.WriteLine("такой файл не существует");
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
файл доступен для чтения и для записи
 
 

CreationTime

Свойство возвращает или задает время создания файла.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    Console.WriteLine("{0:U}", FI.CreationTime);
  •   }
  •   else {
  •    Console.WriteLine("такой файл не существует");
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
27 октября 2014 г. 3:20:18
 
 

LastWriteTime

Свойство возвращает время последней записи в файл.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    Console.WriteLine("{0:U}", FI.LastWriteTime);
  •   }
  •   else {
  •    Console.WriteLine("такой файл не существует");
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
28 октября 2014 г. 13:41:08
 
 

Create()

Метод создает файл, если такой существует, перезаписывает его.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   string pathDirectory = @"D:\zzz";
  •   DirectoryInfo DI = new DirectoryInfo(pathDirectory);
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    Console.WriteLine("такой файл существует");
  •    Console.WriteLine("файл будет перезаписан");
  •    Console.WriteLine("все данные, которые были в старом файле, будут удалены");
  •    FI.Create();
  •   }
  •   else if(FI.Exists==false & DI.Exists==false) {
  •    Console.WriteLine("такой файл не существует");
  •    Console.WriteLine("такой директории не существует\n");
  •    //создаем директорию
  •    DI.Create();
  •    Console.WriteLine("директория успешно создана");
  •    FI.Create();
  •    Console.WriteLine("файл успешно создан");
  •   }
  •   else {
  •    Console.WriteLine("такой файл не существует\n");
  •    Console.WriteLine("файл успешно создан");
  •    FI.Create();
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
такой файл не существует
такой директории не существует

директория успешно создана
файл успешно создан
 
 

CreateText()

Метод создает файл, записывает в него текст; если файл существует, то удаляет в нем старый текст и записывает новый.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   string pathDirectory = @"D:\zzz";
  •   DirectoryInfo DI = new DirectoryInfo(pathDirectory);
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    using(StreamWriter sw = FI.CreateText()) {
  •     sw.WriteLine("Hello World!");
  •     sw.WriteLine("Привет Мир!");
  •    }
  •    Console.WriteLine("новый текст успешно записан в файл");
  •   }
  •   else if(FI.Exists==false & DI.Exists==false) {
  •    DI.Create();
  •    using(StreamWriter sw = FI.CreateText()) {
  •     sw.WriteLine("Hello World!");
  •     sw.WriteLine("Привет Мир!");
  •    }
  •    Console.WriteLine("новый текст успешно записан в файл");
  •   }
  •   else {
  •    using(StreamWriter sw = FI.CreateText()) {
  •     sw.WriteLine("Hello World!");
  •     sw.WriteLine("Привет Мир!");
  •    }
  •    Console.WriteLine("новый текст успешно записан в файл");
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
новый текст успешно записан в файл
 
 

AppendText()

Метод дописывает текст в конец файла.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   string pathDirectory = @"D:\zzz";
  •   DirectoryInfo DI = new DirectoryInfo(pathDirectory);
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    using(StreamWriter sw = FI.AppendText()) {
  •     //дописываем текущую дату
  •     DateTime DT = DateTime.Now;
  •     sw.WriteLine("{0:U}", DT);
  •    }
  •    Console.WriteLine("новый текст успешно записан в конец файла");
  •   }
  •   else if(FI.Exists==false & DI.Exists==false) {
  •    DI.Create();
  •    using(StreamWriter sw = FI.AppendText()) {
  •     //дописываем текущую дату
  •     DateTime DT = DateTime.Now;
  •     sw.WriteLine("{0:U}", DT);
  •    }
  •    Console.WriteLine("новый текст успешно записан в конец файла");
  •   }
  •   else {
  •    using(StreamWriter sw = FI.AppendText()) {
  •     //дописываем текущую дату
  •     DateTime DT = DateTime.Now;
  •     sw.WriteLine("{0:U}", DT);
  •    }
  •    Console.WriteLine("новый текст успешно записан в конец файла");
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
новый текст успешно записан в конец файла
 
 

Delete()

Метод удаляет файл, без возможности восстановления.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   string path = @"D:\zzz\a.txt";
  •   FileInfo FI = new FileInfo(path);
  •   if(FI.Exists) {
  •    FI.Delete();
  •    Console.WriteLine("файл успешно удален");
  •   }
  •   else {
  •    Console.WriteLine("удалить не возможно, такой файл не существует");
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
файл успешно удален
 
 

CopyTo(path, bool)

Метод копирует существующий файл в новый файл, если true — разрешает перезапись старого файла, если false — не разрешает.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   //файл, из которого будет скопирован текст
  •   string pathFrom = @"D:\zzz\a.txt";
  •   //файл, в который будет скопирован текст
  •   string pathTo = @"D:\zzz\b.txt";
  •   FileInfo FFrom = new FileInfo(pathFrom);
  •   FileInfo FTo = new FileInfo(pathTo);
  •   if(FFrom.Exists & FTo.Exists) {
  •    FFrom.CopyTo(pathTo, true);
  •    Console.WriteLine("копирование успешно выполнено");
  •   }
  •   else if(FFrom.Exists == false) {
  •    Console.WriteLine("копирование не возможно, файл-источник отсутствует");
  •   }
  •   else if(FTo.Exists == false) {
  •    string pathToDirectory = @"D:\zzz";
  •    if(Directory.Exists(pathTo) == false) {
  •     Directory.CreateDirectory(pathToDirectory);
  •     using(FileStream fs = FTo.Create()) {}
  •     FFrom.CopyTo(pathTo, true);
  •     Console.WriteLine("копирование успешно выполнено");
  •    }
  •    else {
  •     using(FileStream fs = FTo.Create()) { }
  •     FFrom.CopyTo(pathTo, true);
  •     Console.WriteLine("копирование успешно выполнено");
  •    }
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
копирование успешно выполнено
 
 

Replace()

Метод заменяет содержимое указанного файла, содержимым другого файла, другой файл удаляется.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   //путь к файлу, содержимое которого будет изменено
  •   string pathChange = @"D:\zzz\a.txt";
  •   //путь к файлу, из которого будет происходить замена, файл будет удален
  •   string pathDelete = @"D:\zzz\b.txt";
  •   FileInfo FChange = new FileInfo(pathChange);
  •   FileInfo FDelete = new FileInfo(pathDelete);
  •   if(FChange.Exists & FDelete.Exists) {
  •    //null - не создавать резервную копию
  •    //true - игнорировать ошибки
  •    FDelete.Replace(pathChange, null, true);
  •    Console.WriteLine("замена содержимого файла произведена успешно");
  •   }
  •   else if(FDelete.Exists == false) {
  •    Console.WriteLine("замена содержимого файла не возможно, файл-источник отсутствует");
  •   }
  •   else if(FChange.Exists == false) {
  •    string FChangeDirectory = @"D:\zzz";
  •    if(Directory.Exists(FChangeDirectory) == false) {
  •     Directory.CreateDirectory(FChangeDirectory);
  •     using(FileStream fs = FChange.Create()) { }
  •     FDelete.Replace(pathChange, null, true);
  •     Console.WriteLine("замена содержимого файла произведена успешно");
  •    }
  •    else {
  •     using(FileStream fs = FChange.Create()) { }
  •     FDelete.Replace(pathChange, null, true);
  •     Console.WriteLine("замена содержимого файла произведена успешно");
  •    }
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
замена содержимого файла произведена успешно
 
 

MoveTo(path)

Метод перемещает файл по заданному пути.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  •  
  • class Program {
  •  public static int Main() {
  •   //путь, откуда файл будет перемещен
  •   string pathFrom = @"D:\zzz\a.txt";
  •   //путь, куда файл будет перемещен
  •   string pathTo = @"D:\uuu\a.txt";
  •   FileInfo FFrom = new FileInfo(pathFrom);
  •   FileInfo FTo = new FileInfo(pathTo);
  •   if(FFrom.Exists) {
  •    if(Directory.Exists(@"D:\uuu") == false) {
  •     Directory.CreateDirectory(@"D:\uuu");
  •     FFrom.MoveTo(pathTo);
  •     Console.WriteLine("перемещение файла выполнено успешно");
  •    }
  •    else {
  •     FFrom.MoveTo(pathTo);
  •     Console.WriteLine("перемещение файла выполнено успешно");
  •    }
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
перемещение файла выполнено успешно
 
 

Open(mode, access, share)

Метод открывает файл и задает режим, доступ, параметр доступа.
Метод возвращает объект FileStream, работающий с байтовыми потоками.
FileMode
CreateNew должен быть создан новый файл, если файл существует, происходит исключение
Create должен быть создан новый файл, если файл существует, он будет перезаписан
Open открывает существующий файл, если файл не существует, происходит исключение
OpenOrCreate открывает существующий файл, если файл не существует, создается новый файл
Truncate открывает существующий файл, если файл уже открыт, он усекается, чтобы его размер стал равен 0 байтов
Append открывает существующий файл, устанавливает курсор в конец файла, если файл не существует, создает новый;
используется только с перечислением FileAccess.Write
FileAccess
Read доступ только для чтения из файла
Write доступ только для записи в файл
ReadWrite доступ для чтения и записи в файл
FileShare
None не разрешает совместное использование файла нескольким процессам
Read разрешает открытие файла для чтения нескольким процессам
Write разрешает открытие файла для записи нескольким процессам
ReadWrite разрешает открытие файла для чтения и записи нескольким процессам
Delete разрешает удаление файла нескольким процессам
Inheritable разрешает наследование дескриптора файла дочерними процессами
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //подключить пространство имен
  • using System.IO;
  • //подключить пространство имен для кодировки
  • using System.Text;
  •  
  • class Program {
  •  public static int Main() {
  •   //путь
  •   string path = @"D:\zzz\a.txt";
  •   //создаем объект
  •   FileInfo FI = new FileInfo(path);
  •   //если файл существует
  •   if(FI.Exists) {
  •    //работа только с байтовым потоком
  •    using(FileStream fs = FI.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) {
  •     //задаем кодировку
  •     UTF8Encoding utf8code = new UTF8Encoding(false);
  •     //записываем в массив байтов информацию
  •     byte[] arra = utf8code.GetBytes("Hello World!\nПривет Мир!\n");
  •     //записываем в файл
  •     fs.Write(arra, 0, arra.Length);
  •     //желательно очистить буфер
  •     fs.Flush();
  •     Console.WriteLine("текст успешно записан в файл");
  •    }
  •   }
  •   //если файл не существует
  •   else {
  •    //путь
  •    string pathDirectory = @"D:\zzz";
  •    //если существует директория
  •    if(Directory.Exists(pathDirectory)) {
  •     //работа только с байтовым потоком
  •     using(FileStream fs = FI.Open(FileMode.CreateNew, FileAccess.ReadWrite, FileShare.ReadWrite)) {
  •      //задаем кодировку
  •      UTF8Encoding utf8code = new UTF8Encoding(false);
  •      //записываем в массив байтов информацию
  •      byte[] arra = utf8code.GetBytes("Hello World!\nПривет Мир!\n");
  •      //записываем в файл
  •      fs.Write(arra, 0, arra.Length);
  •      //желательно очистить буфер
  •      fs.Flush();
  •      Console.WriteLine("текст успешно записан в файл");
  •     }
  •    }
  •    //если не существует директория
  •    else {
  •     //создаем директорию
  •     Directory.CreateDirectory(pathDirectory);
  •     //работа только с байтовым потоком
  •     using(FileStream fs = FI.Open(FileMode.CreateNew, FileAccess.ReadWrite, FileShare.ReadWrite)) {
  •      //задаем кодировку
  •      UTF8Encoding utf8code = new UTF8Encoding(false);
  •      //записываем в массив байтов информацию
  •      byte[] arra = utf8code.GetBytes("Hello World!\nПривет Мир!\n");
  •      //записываем в файл
  •      fs.Write(arra, 0, arra.Length);
  •      //желательно очистить буфер
  •      fs.Flush();
  •      Console.WriteLine("текст успешно записан в файл");
  •     }
  •    }
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
текст успешно записан в файл