Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Skrócenie kodu


KrzychuLP2

Rekomendowane odpowiedzi

Opublikowano

Witam, mam do was pewną sprawę a raczej prośbę, czy ktoś mógłby przerobić ten kod tak by automatycznie robiły się nowe foldery?
Chodzi mi tutaj o to by nie robić od nowa tego samego i poszerzać tylko niepotrzebnie kodu tylko by był jeden spójny.
 

        private void Patch()
        {
            if (cFile.Contains(@"\"))
            {
                string Folder = cFile.Substring(0, cFile.IndexOf(@"\"));
                if (!Directory.Exists(Folder))
                    Directory.CreateDirectory(Folder);
                string Folder2 = cFile.Replace(Folder + @"\", string.Empty);
                if (Folder2.Contains(@"\"))
                {
                    Folder2 = Folder2.Substring(0, Folder2.IndexOf(@"\"));
                    if (!Directory.Exists(Folder + @"\" + Folder2))
                        Directory.CreateDirectory(Folder + @"\" + Folder2);
                    if (Folder2.Contains(@"\"))
                    {
                        string Folder3 = Folder2.Substring(0, Folder2.IndexOf(@"\"));
                        if (!Directory.Exists(Folder + @"\" + Folder2 + @"\" + Folder3))
                            Directory.CreateDirectory(Folder + @"\" + Folder2 + @"\" + Folder3);
                    }
                }
            }
            Download(pURL + cFile.Replace("\\", "/"), cFile);
        }
Opublikowano

 

Witam, mam do was pewną sprawę a raczej prośbę, czy ktoś mógłby przerobić ten kod tak by automatycznie robiły się nowe foldery?

Chodzi mi tutaj o to by nie robić od nowa tego samego i poszerzać tylko niepotrzebnie kodu tylko by był jeden spójny.

 

        private void Patch()
        {
            if (cFile.Contains(@"\"))
            {
                string Folder = cFile.Substring(0, cFile.IndexOf(@"\"));
                if (!Directory.Exists(Folder))
                    Directory.CreateDirectory(Folder);
                string Folder2 = cFile.Replace(Folder + @"\", string.Empty);
                if (Folder2.Contains(@"\"))
                {
                    Folder2 = Folder2.Substring(0, Folder2.IndexOf(@"\"));
                    if (!Directory.Exists(Folder + @"\" + Folder2))
                        Directory.CreateDirectory(Folder + @"\" + Folder2);
                    if (Folder2.Contains(@"\"))
                    {
                        string Folder3 = Folder2.Substring(0, Folder2.IndexOf(@"\"));
                        if (!Directory.Exists(Folder + @"\" + Folder2 + @"\" + Folder3))
                            Directory.CreateDirectory(Folder + @"\" + Folder2 + @"\" + Folder3);
                    }
                }
            }
            Download(pURL + cFile.Replace("\\", "/"), cFile);
        }

chcesz użyć tego kodu kilkukrotnie? Bo nie do końca rozumiem Twojej prośby.

Opublikowano

Robione na szybko ale działa.

/*
 *  Tworzy folder z podfolderami.
 *  e.g. Foldery(10, MC, Pulpit) gdzie 10 to ilosc folderow, MC nazwa folderu, Pulpit ścieżka docelowa
 */

private static void Foldery(int ilosc, string nazwaFolderu, string sciezka)
    {            
        int x = 0;
        string[] arr = new string[ilosc];
        char separator = Path.DirectorySeparatorChar;        
        string DirPath = String.Empty;        
        {
            do
            {
                x++;
                arr[x - 1] = nazwaFolderu + x;
                DirPath = string.Join(separator.ToString(), arr);
                while (DirPath.Substring(DirPath.Length - 1, 1) == separator.ToString())
                {
                	DirPath = DirPath.Remove(DirPath.Length - 1);
                }                
                DirPath = sciezka + separator + DirPath;
                cDir(DirPath);
                Console.WriteLine(DirPath);
            }
            while (x < ilosc);
        }
        }

private static void cDir(string x)
    {
            if (!Directory.Exists(x))
            {
        Directory.CreateDirectory(x);
            }
    } 

Użycie kodu.

Foldery(10, "MC", Environment.GetFolderPath(Environment.SpecialFolder.Desktop));

Wygląda to mniej więcej tak:

-Folder1

 -Folder2

  -Folder3

   -Folder4

 

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...