Beispiel #1
0
        private void sortuj()
        {
            if (kategorie[0] == "")
                return;
            if (!Directory.Exists(directoryTreeView.SelectedNode.Name))        //czy katalog który mamy sortować istnieje
            {
                MessageBox.Show("Podany katalog nie istnieje.");
                return;
            }

            // Tu: Wyświetl informację, że system sprawdza ilość plików

            progressBar2.Maximum = 0;
            progressBar2.Value = 0;
            progressBar2.Step = 1;
            Logi.Text = "Znajdowanie plików..." + Environment.NewLine;
            //Logi.Items.Add("Znajdowanie plików...");
            Logi.Refresh();
            Dictionary<string, List<string>> sciezki_plikow = znajdz_wspierane_pliki(directoryTreeView.SelectedNode.Name);

            Logi.AppendText("Znaleziono wszystkie wspierane pliki.\n");
            Logi.Refresh();
            Logi.Clear();

            //tworzymy katalogi - punkt 4
            Directory.SetCurrentDirectory(directoryTreeView.SelectedNode.Name);
            Directory.CreateDirectory(@"Musesort\Temp");
            Directory.CreateDirectory(@"Musesort\Posegregowane\Nieprzydzielone");
            Directory.CreateDirectory(@"Musesort\Zduplikowane\Posegregowane\Nieprzydzielone");
            Directory.CreateDirectory(@"Musesort\Zduplikowane\Temp");

            foreach (string rozszerzenie in utwor.wspierane_rozszerzenia) //iterujemy po rozszerzeniach
                foreach (string sciezka in sciezki_plikow[rozszerzenie]) //iterujemy po plikach
                {
                    Logi.AppendText("Sortuje plik: " + sciezka + Environment.NewLine);
                    Logi.Refresh();
                    utwor plik = new utwor(sciezka);

                    if (plik.tagi == null)
                        continue;
                    string nazwa_pliku = Path.GetFileName(plik.sciezka);
                    plik.kopiuj(@"Musesort\Temp\" + nazwa_pliku);
                    plik = new utwor(@"Musesort\Temp\" + nazwa_pliku);
                    plik.pobierz_tagi(sciezka);
                    plik.zapisz_tagi_standaryzuj_nazwe();

                    string sciezka_katalogu;
                    if (schematy.Text == @"Piosenki\Wykonawca" && plik.wykonawca[0] != "" && plik.tytul != "")
                    {
                        sciezka_katalogu = @"Musesort\Posegregowane";
                        nazwa_pliku = plik.wykonawca[0] + '_' + plik.tytul + '.' + plik.rozszerzenie;
                    }
                    else
                        sciezka_katalogu = sciezka_katalogu_z_pol(plik);

                    if (!Directory.Exists(sciezka_katalogu))
                        Directory.CreateDirectory(sciezka_katalogu); // to tworzy też wszystkie katalogi które są "po drodze"
                    // tzn. wyższego rzędu które też nie istnieją

                    //przenosimy pliki
                    //Console.WriteLine("Przenoszenie " + sciezka_katalogu + @"\" + nazwa_pliku);
                    try
                    {
                        plik.zmien_nazwe_pliku(Path.Combine(sciezka_katalogu, nazwa_pliku));
                    }
                    catch (System.IO.IOException) //rzucane w przypadku kolizji nazw plików
                    {
                        duplikat(Path.Combine(sciezka_katalogu, nazwa_pliku), plik.sciezka);
                    }

                    //obsługa logów
                    //---------------------------------------------------------------------------------
                    Logi.AppendText(ZamienNaWlasciwe(plik.nazwa) + Environment.NewLine);
                    Logi.AppendText("Posortowano plik : " + sciezka + Environment.NewLine);
                    if (plik.pobierane_z_nazwy || plik.pobierane_ze_sciezki)
                    {
                        if (plik.pobierane_ze_sciezki)
                        {
                            Logi.AppendText("Wygenerowano tagi ze sciezki" + Environment.NewLine);
                        }
                        else
                        {
                            Logi.AppendText("Wygenerowano tagi z nazwy" + Environment.NewLine);
                        }
                    }
                    else
                    {
                        Logi.AppendText("Wczytano tagi" + Environment.NewLine);
                        Logi.Refresh();
                    }
                    Logi.AppendText("Nazwa pliku: " + ZamienNaWlasciwe(plik.nazwa) + Environment.NewLine);
                    if (plik.wykonawca.Length > 0)
                    {
                        Logi.AppendText("Wykonawca: " + ZamienNaWlasciwe(plik.wykonawca[0]) + Environment.NewLine);
                    }
                    else
                    {
                        Logi.AppendText("Nie wygenerowano wykonawcy" + Environment.NewLine);
                    }

                    Logi.AppendText("Tytul: " + ZamienNaWlasciwe(plik.tytul) + Environment.NewLine);
                    Logi.AppendText("Album: " + ZamienNaWlasciwe(plik.album) + Environment.NewLine);
                    if (plik.gatunek.Length > 0)
                    {
                        Logi.AppendText("Gatunek: " + ZamienNaWlasciwe(plik.gatunek[0]) + Environment.NewLine);
                    }
                    else
                    {
                        Logi.AppendText("Nie wygenerowano gatunku" + Environment.NewLine);
                    }
                    Logi.AppendText("Rok: " + plik.rok + Environment.NewLine);
                    Logi.Refresh();
                    //---------------------------------------------------------------------------------------
                    progressBar2.PerformStep();
                }
        }
Beispiel #2
0
        private void sortuj_plik(string sciezka, string schemat)
        {
            //------------------------------------------------------ kopiowanie pliku do Temp
            Console.WriteLine("Sortuję " + sciezka);
            utwor plik;
            try
            {
                plik = new utwor(sciezka);
            }
            catch
            {
                Console.WriteLine("Nie powidło się sortowanie pliku " + sciezka);
                return;
            }

            if (plik.tagi == null)
                return;
            plik.przepisz_tagi();
            string nazwa_pliku = Path.GetFileName(plik.sciezka);
            plik.kopiuj(@"Temp\" + nazwa_pliku);
            //String[] temp1 = sciezka.Split('\\');
            //String temporary = "";
            //for (int i = 0; i < temp1.Length - 2; i++)
            //{
            //    temporary += temp1[i] + "\\";
            //}
            //temporary += temp1[temp1.Length - 2];
            //String direction = temporary + "\\Temp";
            //plik.przywroc_stare();
            ////------------------------------------------------------- teraz zmienna plik to ten w Temp
            //nazwa_pliku = temp1[temp1.Length-1];
            plik = new utwor(@"Temp\" + nazwa_pliku);
            plik.pobierz_tagi();
            string sciezka_katalogu;
            if (schemat == @"Piosenki\Wykonawca" && plik.wykonawca[0] != "" && plik.tytul != "")
            {
                sciezka_katalogu = @"Musesort\Posegregowane";
                nazwa_pliku = plik.wykonawca[0] + '_' + plik.tytul + '.' + plik.rozszerzenie;
            }
            else
            {
                sciezka_katalogu = sciezka_katalogu_z_pol(plik, false, true);
                //usuwamy jeden nadmiarowy "Musesort" z początku
                //sciezka_katalogu = sciezka_katalogu.Substring(sciezka_katalogu.IndexOf("\\")+1);
            }

            if (!Directory.Exists(sciezka_katalogu))
                Directory.CreateDirectory(sciezka_katalogu); // to tworzy też wszystkie katalogi które są "po drodze"
            // tzn. wyższego rzędu które też nie istnieją

            //przenosimy pliki
            //Console.WriteLine("Przenoszenie " + sciezka_katalogu + @"\" + nazwa_pliku);
            try
            {
                String kombinacja = sciezka_katalogu + "\\" + nazwa_pliku;
                plik.zmien_nazwe_pliku(kombinacja);
                Console.WriteLine("Dodano plik do katalogu " + kombinacja);
            }
            catch (System.IO.IOException) //rzucane w przypadku kolizji nazw plików
            {
                duplikat(Path.Combine(sciezka_katalogu, nazwa_pliku), plik.sciezka, true);
            }
            Console.WriteLine("Plik " + sciezka + " przeniesiony.");
        }
        private void sortuj()
        {
            if (kategorie[0] == "")
                return;
            if (!Directory.Exists(sciezka_box.Text))        //czy katalog który mamy sortować istnieje
            {
                MessageBox.Show("Podany katalog nie istnieje.");
                return;
            }

            // Tu: Wyświetl informację, że system sprawdza ilość plików

            progress_bar.Maximum = 0;
            progress_bar.Value = 0;
            progress_bar.Step = 1;
            lista_plikow_box.Items.Add("Znajdowanie plików...");
            lista_plikow_box.Refresh();
            Dictionary<string, List<string>> sciezki_plikow = znajdz_wspierane_pliki(sciezka_box.Text);

            lista_plikow_box.Items.Add("Znaleziono wszystkie wspierane pliki.");
            lista_plikow_box.Refresh();
            lista_plikow_box.Items.Clear();

            //tworzymy katalogi - punkt 4
            Directory.SetCurrentDirectory(sciezka_box.Text);
            Directory.CreateDirectory(@"Musesort\Temp");
            Directory.CreateDirectory(@"Musesort\Posegregowane\Nieprzydzielone");
            Directory.CreateDirectory(@"Musesort\Zduplikowane\Posegregowane\Nieprzydzielone");
            Directory.CreateDirectory(@"Musesort\Zduplikowane\Temp");

            foreach (string rozszerzenie in utwor.wspierane_rozszerzenia) //iterujemy po rozszerzeniach
                foreach (string sciezka in sciezki_plikow[rozszerzenie]) //iterujemy po plikach
                {
                    utwor plik = new utwor(sciezka);
                    if (plik.tagi == null)
                        continue;
                    string nazwa_pliku = Path.GetFileName(plik.sciezka);
                    plik.kopiuj(@"Musesort\Temp\" + nazwa_pliku);
                    plik = new utwor(@"Musesort\Temp\" + nazwa_pliku);
                    plik.pobierz_tagi();
                    plik.zapisz_tagi_standaryzuj_nazwe();

                    string sciezka_katalogu;
                    if (schemat_box.Text == @"Piosenki\Wykonawca" && plik.wykonawca[0] != "" && plik.tytul != "")
                    {
                        sciezka_katalogu = @"Musesort\Posegregowane";
                        nazwa_pliku = plik.wykonawca[0] + '_' + plik.tytul + '.' + plik.rozszerzenie;
                    }
                    else
                        sciezka_katalogu = sciezka_katalogu_z_pol(plik);

                    if (!Directory.Exists(sciezka_katalogu))
                        Directory.CreateDirectory(sciezka_katalogu); // to tworzy też wszystkie katalogi które są "po drodze"
                    // tzn. wyższego rzędu które też nie istnieją

                    //przenosimy pliki
                    //Console.WriteLine("Przenoszenie " + sciezka_katalogu + @"\" + nazwa_pliku);
                    try
                    {
                        plik.zmien_nazwe_pliku(Path.Combine(sciezka_katalogu, nazwa_pliku));
                    }
                    catch (System.IO.IOException ex) //rzucane w przypadku kolizji nazw plików
                    {
                        duplikat(Path.Combine(sciezka_katalogu, nazwa_pliku), plik.sciezka);
                    }
                    lista_plikow_box.Items.Add(plik.nazwa.Clone());
                    lista_plikow_box.Refresh();
                    progress_bar.PerformStep();
                }
            return;
        }