Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- namespace ConsoleApp2
- {
- public class CreateFileOrFolder
- {
- public static string GetRandomAlphaNumeric()
- {
- return Path.GetRandomFileName().Replace(".", "").Substring(0, 10);
- }
- static List<string> EveryNthElement(List<string> list, int nth)
- {
- IEnumerable<string> result = Enumerable.Empty<string>();
- result = list.Where((x, i) => i % nth != nth - 1);
- return result.ToList();
- }
- static void Main()
- {
- string folderName = @"c:\Task2\Proba4";
- string pathString = System.IO.Path.Combine(folderName, "Files");
- var directory = System.IO.Directory.CreateDirectory(pathString);
- string pathString1 = System.IO.Path.Combine(folderName, "files_generated.txt");
- var filesGenerated = System.IO.File.Create(pathString1);
- List<string> list = new List<string>();
- using (System.IO.StreamWriter file = new System.IO.StreamWriter(filesGenerated))
- {
- for (int i = 0; i < 11; i++)
- {
- string fileName = GetRandomAlphaNumeric();
- list.Add(fileName + ".txt");
- file.WriteLine(fileName + ".txt");
- var pathString2 = System.IO.Path.Combine(pathString, fileName + ".txt");
- var newFile = System.IO.File.Create(pathString2);
- newFile.Close();
- }
- }
- filesGenerated.Close();
- Console.WriteLine("files_generated.txt: ");
- Console.WriteLine(string.Join(",", list));
- list = list.OrderBy(a => a).ToList();
- string pathString3 = System.IO.Path.Combine(folderName, "files_sorted.txt");
- var filesSorted = System.IO.File.Create(pathString3);
- using (System.IO.StreamWriter file = new System.IO.StreamWriter(filesSorted))
- {
- for (int i = 0; i < list.Count; i++)
- {
- file.WriteLine(list[i]);
- }
- }
- filesSorted.Close();
- Console.WriteLine("files_sorted.txt: ");
- Console.WriteLine(string.Join(",", list));
- string pathString4 = System.IO.Path.Combine(folderName, "files_deleted_1.txt");
- string pathString5 = System.IO.Path.Combine(folderName, "files_deleted_2.txt");
- var filesDeleted1List = EveryNthElement(list, 2);
- var filesDeleted2List = EveryNthElement(filesDeleted1List, 3);
- Console.WriteLine("files_deleted1.txt: ");
- Console.WriteLine(string.Join(",", filesDeleted1List));
- Console.WriteLine("files_deleted2.txt: ");
- Console.WriteLine(string.Join(",", filesDeleted2List));
- var filesDeleted1 = System.IO.File.Create(pathString4);
- using (System.IO.StreamWriter file = new System.IO.StreamWriter(filesDeleted1))
- {
- for (int i = 0; i < filesDeleted1List.Count; i++)
- {
- file.WriteLine(filesDeleted1List[i]);
- }
- }
- filesDeleted1.Close();
- var filesDeleted2 = System.IO.File.Create(pathString5);
- using (System.IO.StreamWriter file2 = new System.IO.StreamWriter(filesDeleted2))
- {
- for (int i = 0; i < filesDeleted2List.Count; i++)
- {
- file2.WriteLine(filesDeleted2List[i]);
- }
- }
- filesDeleted2.Close();
- Console.WriteLine("Files (files left total): ");
- Console.WriteLine(string.Join(",", list));
- string pathStringDelete = System.IO.Path.Combine(folderName, "Files");
- list = filesDeleted2List;
- Console.WriteLine("FilesX (after delete files from Files that are not listed in the file_deleted_2.txt - so only files that are in file_deleted_2: ");
- Console.WriteLine(string.Join(",", list));
- System.IO.DirectoryInfo di = new DirectoryInfo(pathStringDelete);
- foreach (FileInfo file in di.GetFiles())
- {
- bool da = false;
- for (int i=0; i<list.Count; i++)
- {
- if (file.Name == list[i].ToString()) da = true;
- }
- if (!da) file.Delete();
- }
- string pathStringX = System.IO.Path.Combine(folderName, "files_" + list.Count + ".txt");
- var filesX = System.IO.File.Create(pathStringX);
- using (System.IO.StreamWriter file = new System.IO.StreamWriter(filesX))
- {
- for (int i = 0; i < list.Count; i++)
- {
- if (File.Exists(Path.Combine(pathStringDelete, list[i])))
- {
- file.WriteLine(list[i]);
- }
- }
- }
- System.Console.WriteLine("Press any key to exit.");
- System.Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement