public static void Write(string s) { int i = s.IndexOf('['); int j = s.IndexOf(']'); int l = s.IndexOf('}'); if (i == -1 || j == -1 || l == -1) { Console.Write(s); } else { if (i > 0) { Console.Write(s.Substring(0, i)); } Színtvált(s.Substring(i + 1, j - i - 1 )); Console.Write(s.Substring(j + 2, l - j - 2 )); Színtvált("white"); if (l < s.Length - 1) { Színes.Write(s.Substring(l + 1)); } } }
static void Main(string[] args) { Színes.WriteLine("A program működése:"); Színes.WriteLine("Legyen [blue]{D} azon könyvtár neve, amiben ezt a programot futtatod."); Színes.WriteLine("Legyenek továbbá [blue]{D_1}, [blue]{D_2}, ... [blue]{D_i}, ... a [blue]{D} könyvtárban található közvetlen könyvtárak nevei. (Tehát csak a gyerekek.)"); Színes.WriteLine("A program be fog kérni"); Színes.WriteLine("--\tegy [blue]{R} reguláris kifejezést. Ha nem így akarsz keresni, hagyd üresen."); Színes.WriteLine("--\tegy [blue]{F} fájlnevet (elérési útvonal nélkül). Ha nem így akarsz keresni, hagyd üresen."); Színes.WriteLine("--\tegy [blue]{C} könyvtárnevet,"); Színes.WriteLine("--\tegy [blue]{O} opciót, amely a következők valamelyikét jelenti:"); Színes.WriteLine("\tA [blue]{D_1}, [blue]{D_2}, ... [blue]{D_i}, ... könyvtárban található alkönyvtárban mélységi kereséssel fellelhető [blue]{F} nevű fájlokat bemásolja"); Színes.WriteLine("\t [green]{1}: egy új [blue]{C} nevű könyvtárba úgy, hogy a fájlok a [blue]{D_1}, [blue]{D_2}, ... [blue]{D_i}, ... könyvtárakról lesznek elnevezve."); Színes.WriteLine("\t\tTehát a [blue]{C} tartalma [blue]{D_1}-[blue]{F}, [blue]{D_2}-[blue]{F}, ..., [blue]{D_i}-[blue]{F}, ... fájlok lesznek. "); Színes.WriteLine("\t [green]{2}: egy új, [blue]{C} nevű könyvtárban létrehozott [blue]{D_i} könyvtárba az eredeti [blue]{F} néven (reguláris kifejezés esetén a saját nevén)."); Színes.WriteLine("\t\tTehát a [blue]{C} tartalma a [blue]{D_1}, [blue]{D_2}, ..., [blue]{D_i}, ... könyvtárak lesznek, melyeknek egyetlen tartalmuk egy [blue]{F} fájl. "); Színes.WriteLine("\t [green]{sok2}[red]{n}: sok új, [blue]{C_1}, [blue]{C_2}..., [blue]{C_n} nevű könyvtárban létrehozott [blue]{D_i} könyvtárba az eredeti [blue]{F} néven (reguláris kifejezés esetén a saját nevén)."); Színes.WriteLine("\t\tTehát minden [blue]{C_i} tartalma a [blue]{D_1}, [blue]{D_2}, ..., [blue]{D_i}, ... könyvtárak lesznek, melyeknek egyetlen tartalmuk egy [blue]{F} fájl. "); Színes.WriteLine("[yellow]{---------------------------------------}"); Színes.Write("[blue]{R} = "); string R = Console.ReadLine(); Színes.Write("[blue]{F} = "); string F = Console.ReadLine(); Színes.Write("[blue]{C} = "); string C = Console.ReadLine(); Színes.Write("[blue]{O} = "); string O; List <string> options = new List <string> { "1", "2" }; int cardinality; do { O = Console.ReadLine(); } while (!options.Contains(O) && !(O.StartsWith("sok2") && int.TryParse(O.Substring(4), out cardinality))); Színes.WriteLine("[yellow]{---------------------------------------}"); string ezakönyvtár = Directory.GetCurrentDirectory(); IEnumerable <string> könyvtárakitt = Directory.EnumerateDirectories(ezakönyvtár); string eredménykönyvtár = ezakönyvtár + "\\" + C; Directory.CreateDirectory(eredménykönyvtár); List <string> másolandófájlok = new List <string>(); string találtfájl = ""; foreach (string D_i in könyvtárakitt) { if (D_i != eredménykönyvtár) { if (Fájlkezelés.Fájl_Keresése(D_i, F, R, ref találtfájl)) { if (O == "1") { File.Copy(találtfájl, eredménykönyvtár + "\\" + Fájlkezelés.Path2Név(D_i) + "-" + Fájlkezelés.Path2Név(találtfájl)); Színes.WriteLine("A [green]{" + D_i + "} könyvtárban a(z) [blue]{" + (R == "" ? F : R) + "} fájlt megtaláltam, bemásoltam a [blue]{" + C + "} könyvtárba."); } else if (O == "2") { Directory.CreateDirectory(eredménykönyvtár + "\\" + Fájlkezelés.Path2Név(D_i)); File.Copy(találtfájl, eredménykönyvtár + "\\" + Fájlkezelés.Path2Név(D_i) + "\\" + Fájlkezelés.Path2Név(találtfájl)); Színes.WriteLine("A [green]{" + D_i + "} könyvtárban a(z) [blue]{" + (R == "" ? F : R) + "} fájlt megtaláltam, bemásoltam a [blue]{" + C + "} könyvtárban létrehozott [blue]{" + Fájlkezelés.Path2Név(D_i) + "} könyvtárba."); } else if (O.StartsWith("sok2")) { int n = int.Parse(O.Substring(4)); string célkönyvtárindexnélkül = eredménykönyvtár + "\\" + C + "_"; string célkönyvtár; for (int i = 0; i < n; i++) { célkönyvtár = célkönyvtárindexnélkül + (i + 1).ToString() + "\\"; Directory.CreateDirectory(célkönyvtár + Fájlkezelés.Path2Név(D_i)); File.Copy(találtfájl, célkönyvtár + Fájlkezelés.Path2Név(D_i) + "\\" + Fájlkezelés.Path2Név(találtfájl)); } Színes.WriteLine("A [green]{" + D_i + "} könyvtárban a(z) [blue]{" + (R == "" ? F : R) + "} fájlt megtaláltam, bemásoltam a [blue]{" + C + "} kezdetű könyvtárakban létrehozott [blue]{" + Fájlkezelés.Path2Név(D_i) + "} könyvtárba."); } } else { Színes.WriteLine("A [green]{" + D_i + "} könyvtárban a(z) [blue]{" + F + "} fájlt [red]{nem találtam meg :(}."); } } } Színes.WriteLine("[yellow]{A program befejeződött. Nyomd meg a q-t a kilépéshez.}"); while (Console.ReadKey().KeyChar != 'q') { } }