Program.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  1. /*
  2. using System;
  3. using System.IO;
  4. DriveInfo[] drives = DriveInfo.GetDrives();
  5. foreach (DriveInfo drive in drives)
  6. {
  7. Console.WriteLine($"Название: {drive.Name}");
  8. Console.WriteLine($"Тип: {drive.DriveType}");
  9. if (drive.IsReady)
  10. {
  11. Console.WriteLine($"Объем диска: {drive.TotalSize}");
  12. Console.WriteLine($"Свободное пространство: {drive.TotalFreeSpace}");
  13. Console.WriteLine($"Метка: {drive.VolumeLabel}");
  14. }
  15. Console.WriteLine();
  16. }
  17. */
  18. /*
  19. string dirName = "C:\\Users\\jissxdd\\Desktop\\labs\\lab5_files\\test123";
  20. if (Directory.Exists(dirName))
  21. {
  22. Console.WriteLine("Подкаталоги:");
  23. string[] dirs = Directory.GetDirectories(dirName);
  24. foreach (string s in dirs)
  25. {
  26. Console.WriteLine(s);
  27. }
  28. Console.WriteLine();
  29. Console.WriteLine("Файлы:");
  30. string[] files = Directory.GetFiles(dirName);
  31. foreach (string s in files)
  32. {
  33. Console.WriteLine(s);
  34. }
  35. }
  36. */
  37. /*
  38. string path = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123";
  39. string subpath = @"program\avalon";
  40. DirectoryInfo dirInfo = new DirectoryInfo(path);
  41. if (!dirInfo.Exists)
  42. {
  43. dirInfo.Create();
  44. }
  45. dirInfo.CreateSubdirectory(subpath);
  46. */
  47. /*
  48. string dirName = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123";
  49. DirectoryInfo dirInfo = new DirectoryInfo(dirName);
  50. Console.WriteLine($"Название каталога: {dirInfo.Name}");
  51. Console.WriteLine($"Полное название каталога: {dirInfo.FullName}");
  52. Console.WriteLine($"Время создания каталога: {dirInfo.CreationTime}");
  53. Console.WriteLine($"Корневой каталог: {dirInfo.Root}");
  54. */
  55. /*
  56. string dirName = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\program";
  57. try
  58. {
  59. DirectoryInfo dirInfo = new DirectoryInfo(dirName);
  60. dirInfo.Delete(true);
  61. Console.WriteLine("Каталог удален");
  62. }
  63. catch (Exception ex)
  64. {
  65. Console.WriteLine(ex.Message);
  66. }
  67. */
  68. /*
  69. string oldPath = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\test1";
  70. string newPath = @"C:\Users\jissxdd\Desktop\labs\lab5_files\testest";
  71. DirectoryInfo dirInfo = new DirectoryInfo(oldPath);
  72. if (dirInfo.Exists && Directory.Exists(newPath) == false)
  73. {
  74. dirInfo.MoveTo(newPath);
  75. }
  76. */
  77. /*
  78. string path = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\123.txt";
  79. FileInfo fileInf = new FileInfo(path);
  80. if (fileInf.Exists)
  81. {
  82. Console.WriteLine("Имя файла: {0}", fileInf.Name);
  83. Console.WriteLine("Время создания: {0}", fileInf.CreationTime);
  84. Console.WriteLine("Размер: {0}", fileInf.Length);
  85. }
  86. */
  87. /*
  88. string path = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\123.txt";
  89. FileInfo fileInf = new FileInfo(path);
  90. if (fileInf.Exists)
  91. {
  92. fileInf.Delete();
  93. // альтернатива с помощью класса File
  94. // File.Delete(path);
  95. }
  96. */
  97. /*
  98. string path = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\123.txt";
  99. string newPath = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\test2\123.txt";
  100. FileInfo fileInf = new FileInfo(path);
  101. if (fileInf.Exists)
  102. {
  103. fileInf.MoveTo(newPath);
  104. // альтернатива с помощью класса File
  105. // File.Move(path, newPath);
  106. }
  107. */
  108. /*
  109. string path = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\test2\123.txt";
  110. string newPath = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\123.txt";
  111. FileInfo fileInf = new FileInfo(path);
  112. if (fileInf.Exists)
  113. {
  114. fileInf.CopyTo(newPath, true);
  115. // альтернатива с помощью класса File
  116. // File.Copy(path, newPath, true);
  117. }
  118. */
  119. /*
  120. using System;
  121. using System.IO;
  122. namespace HelloApp
  123. {
  124. class Program
  125. {
  126. static void Main(string[] args)
  127. {
  128. // создаем каталог для файла
  129. string path = @"F:\aaa";
  130. DirectoryInfo dirInfo = new DirectoryInfo(path);
  131. if (!dirInfo.Exists)
  132. {
  133. dirInfo.Create();
  134. }
  135. Console.WriteLine("Введите строку для записи в файл:");
  136. string text = Console.ReadLine();
  137. // запись в файл
  138. using (FileStream fstream = new FileStream($@"F:\aaa\note.txt", FileMode.OpenOrCreate))
  139. {
  140. // преобразуем строку в байты
  141. byte[] array = System.Text.Encoding.Default.GetBytes(text);
  142. // запись массива байтов в файл
  143. fstream.Write(array, 0, array.Length);
  144. Console.WriteLine("Текст записан в файл");
  145. }
  146. // чтение из файла
  147. using (FileStream fstream = File.OpenRead(@$"F:\aaa\note.txt"))
  148. {
  149. // преобразуем строку в байты
  150. byte[] array = new byte[fstream.Length];
  151. // считываем данные
  152. fstream.Read(array, 0, array.Length);
  153. // декодируем байты в строку
  154. string textFromFile = System.Text.Encoding.Default.GetString(array);
  155. Console.WriteLine($"Текст из файла: {textFromFile}");
  156. }
  157. Console.ReadLine();
  158. }
  159. }
  160. }
  161. */
  162. /*
  163. using System;
  164. using System.IO;
  165. using System.Threading.Tasks;
  166. namespace HelloApp
  167. {
  168. class Program
  169. {
  170. static async Task Main(string[] args)
  171. {
  172. // создаем каталог для файла
  173. string path = @$"F:\aaa";
  174. DirectoryInfo dirInfo = new DirectoryInfo(path);
  175. if (!dirInfo.Exists)
  176. {
  177. dirInfo.Create();
  178. }
  179. Console.WriteLine("Введите строку для записи в файл:");
  180. string text = Console.ReadLine();
  181. // запись в файл
  182. using (FileStream fstream = new FileStream(@$"F:\aaa\note.txt", FileMode.OpenOrCreate))
  183. {
  184. byte[] array = System.Text.Encoding.Default.GetBytes(text);
  185. // асинхронная запись массива байтов в файл
  186. await fstream.WriteAsync(array, 0, array.Length);
  187. Console.WriteLine("Текст записан в файл");
  188. }
  189. // чтение из файла
  190. using (FileStream fstream = File.OpenRead(@$"F:\aaa\note.txt"))
  191. {
  192. byte[] array = new byte[fstream.Length];
  193. // асинхронное чтение файла
  194. await fstream.ReadAsync(array, 0, array.Length);
  195. string textFromFile = System.Text.Encoding.Default.GetString(array);
  196. Console.WriteLine($"Текст из файла: {textFromFile}");
  197. }
  198. Console.ReadLine();
  199. }
  200. }
  201. }
  202. */
  203. /*
  204. using System.IO;
  205. using System.Text;
  206. class Program
  207. {
  208. static void Main(string[] args)
  209. {
  210. string text = "hello world";
  211. // запись в файл
  212. using (FileStream fstream = new FileStream(@"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\123.dat", FileMode.OpenOrCreate))
  213. {
  214. // преобразуем строку в байты
  215. byte[] input = Encoding.Default.GetBytes(text);
  216. // запись массива байтов в файл
  217. fstream.Write(input, 0, input.Length);
  218. Console.WriteLine("Текст записан в файл");
  219. // перемещаем указатель в конец файла, до конца файла- пять байт
  220. fstream.Seek(-5, SeekOrigin.End); // минус 5 символов с конца потока
  221. // считываем четыре символов с текущей позиции
  222. byte[] output = new byte[4];
  223. fstream.Read(output, 0, output.Length);
  224. // декодируем байты в строку
  225. string textFromFile = Encoding.Default.GetString(output);
  226. Console.WriteLine($"Текст из файла: {textFromFile}"); // worl
  227. // заменим в файле слово world на слово house
  228. string replaceText = "house";
  229. fstream.Seek(-5, SeekOrigin.End); // минус 5 символов с конца потока
  230. input = Encoding.Default.GetBytes(replaceText);
  231. fstream.Write(input, 0, input.Length);
  232. // считываем весь файл
  233. // возвращаем указатель в начало файла
  234. fstream.Seek(0, SeekOrigin.Begin);
  235. output = new byte[fstream.Length];
  236. fstream.Read(output, 0, output.Length);
  237. // декодируем байты в строку
  238. textFromFile = Encoding.Default.GetString(output);
  239. Console.WriteLine($"Текст из файла: {textFromFile}"); // hello house
  240. }
  241. Console.Read();
  242. }
  243. }
  244. */
  245. /*
  246. FileStream fstream = null;
  247. try
  248. {
  249. fstream = new FileStream(@"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\123.dat", FileMode.OpenOrCreate);
  250. // операции с потоком
  251. }
  252. catch(Exception ex)
  253. {
  254. }
  255. finally
  256. {
  257. if (fstream != null)
  258. fstream.Close();
  259. }
  260. */
  261. /*
  262. using System;
  263. using System.IO;
  264. namespace HelloApp
  265. {
  266. class Program
  267. {
  268. static void Main(string[] args)
  269. {
  270. string writePath = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\123.txt";
  271. string text = "Привет мир!\nПока мир...";
  272. try
  273. {
  274. using (StreamWriter sw = new StreamWriter(
  275. writePath, false, System.Text.Encoding.Default))
  276. {
  277. sw.WriteLine(text);
  278. }
  279. using (StreamWriter sw = new StreamWriter(
  280. writePath, true, System.Text.Encoding.Default))
  281. {
  282. sw.WriteLine("Дозапись");
  283. sw.Write(4.5);
  284. }
  285. Console.WriteLine("Запись выполнена");
  286. }
  287. catch (Exception e)
  288. {
  289. Console.WriteLine(e.Message);
  290. }
  291. }
  292. }
  293. }
  294. */
  295. /*
  296. using System;
  297. using System.IO;
  298. using System.Threading.Tasks;
  299. namespace HelloApp
  300. {
  301. class Program
  302. {
  303. static async Task Main(string[] args)
  304. {
  305. string writePath = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\123.txt";
  306. string text = "Привет мир!\nПока мир...";
  307. try
  308. {
  309. using (StreamWriter sw = new StreamWriter(
  310. writePath, false, System.Text.Encoding.Default))
  311. {
  312. await sw.WriteLineAsync(text);
  313. }
  314. using (StreamWriter sw = new StreamWriter(
  315. writePath, true, System.Text.Encoding.Default))
  316. {
  317. await sw.WriteLineAsync("Дозапись");
  318. await sw.WriteAsync("4,5");
  319. }
  320. Console.WriteLine("Запись выполнена");
  321. }
  322. catch (Exception e)
  323. {
  324. Console.WriteLine(e.Message);
  325. }
  326. }
  327. }
  328. }
  329. */
  330. /*
  331. using System;
  332. using System.IO;
  333. using System.Threading.Tasks;
  334. string path = @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\123.txt";
  335. try
  336. {
  337. using (StreamReader sr = new StreamReader(path))
  338. {
  339. Console.WriteLine(sr.ReadToEnd());
  340. }
  341. // асинхронное чтение
  342. using (StreamReader sr = new StreamReader(path))
  343. {
  344. Console.WriteLine(await sr.ReadToEndAsync());
  345. }
  346. }
  347. catch (Exception e)
  348. {
  349. Console.WriteLine(e.Message);
  350. }
  351. */
  352. /*
  353. string path= @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\123.txt";
  354. using (StreamReader sr = new StreamReader(path, System.Text.Encoding.Default))
  355. {
  356. string line;
  357. while ((line = sr.ReadLine()) != null)
  358. {
  359. Console.WriteLine(line);
  360. }
  361. }
  362. // асинхронное чтение
  363. using (StreamReader sr = new StreamReader(path, System.Text.Encoding.Default))
  364. {
  365. string line;
  366. while ((line = await sr.ReadLineAsync()) != null)
  367. {
  368. Console.WriteLine(line);
  369. }
  370. }
  371. */
  372. struct State
  373. {
  374. public string name;
  375. public string capital;
  376. public int area;
  377. public double people;
  378. public State(string n, string c, int a, double p)
  379. {
  380. name = n;
  381. capital = c;
  382. people = p;
  383. area = a;
  384. }
  385. }
  386. class Program
  387. {
  388. static void Main(string[] args)
  389. {
  390. State[] states = new State[2];
  391. states[0] = new State("Германия", "Берлин", 357168, 80.8);
  392. states[1] = new State("Франция", "Париж", 640679, 64.7);
  393. string path= @"C:\Users\jissxdd\Desktop\labs\lab5_files\test123\states.dat";
  394. try
  395. {
  396. // создаем объект BinaryWriter
  397. using (BinaryWriter writer = new BinaryWriter(File.Open(path, FileMode.OpenOrCreate)))
  398. {
  399. // записываем в файл значение каждого поля структуры
  400. foreach (State s in states)
  401. {
  402. writer.Write(s.name);
  403. writer.Write(s.capital);
  404. writer.Write(s.area);
  405. writer.Write(s.people);
  406. }
  407. }
  408. // создаем объект BinaryReader
  409. using (BinaryReader reader = new BinaryReader(File.Open(path, FileMode.Open)))
  410. {
  411. // пока не достигнут конец файла
  412. // считываем каждое значение из файла
  413. while (reader.PeekChar() > -1)
  414. {
  415. string name = reader.ReadString();
  416. string capital = reader.ReadString();
  417. int area = reader.ReadInt32();
  418. double population = reader.ReadDouble();
  419. Console.WriteLine("Страна: {0} столица: {1} площадь {2} кв. км численность населения: {3} млн. чел.",
  420. name, capital, area, population);
  421. }
  422. }
  423. }
  424. catch (Exception e)
  425. {
  426. Console.WriteLine(e.Message);
  427. }
  428. Console.ReadLine();
  429. }
  430. }