예제 #1
0
 public OknoEdytujDane(String sciezka)
 {
     InitializeComponent();
     plik = new utwor(sciezka);
     plik.przepisz_tagi();
     wczytaj_plik_do_boxow();
 }
예제 #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.");
        }
예제 #3
0
        private void duplikat(String x, String y, bool dodawanie_jednego_pliku=false)
        {
            utwor plik1 = new utwor(x);
            utwor plik2 = new utwor(y);
            if (!plik1.przepisz_tagi() || !plik2.przepisz_tagi())
                throw new NullReferenceException("Nie wygenerowałem tagów dla plików \n" + x + "\n" + y);

            // do decydowania który jest lepszy będziemy używali ifów, chyba prościej będzie najpierw ustalić wartość boola
            bool pierwszy_jest_lepszy = plik1.tagi.Properties.AudioBitrate >= plik2.tagi.Properties.AudioBitrate;
            if ((preferowane == "najlepszy") || (preferowane == plik1.rozszerzenie && preferowane == plik2.rozszerzenie) || (preferowane != plik1.rozszerzenie && preferowane != plik2.rozszerzenie))
            {
                if (pierwszy_jest_lepszy) //pierwszy plik zostaje gdzie jest, drugi idzie do zduplikowanych
                {
                    string nowykatalog = sciezka_katalogu_z_pol(plik2, true, dodawanie_jednego_pliku);
                    Directory.CreateDirectory(nowykatalog);
                    plik2.zmien_nazwe_pliku(Path.Combine(nowykatalog, plik2.nazwa + '.' + plik2.rozszerzenie));
                }
                else //drugi plik zajmuje miejsce pierwszego, pierwszy idzie do zduplikowanych
                {
                    plik1.zmien_nazwe_pliku(@"Musesort\Zduplikowane\Temp\" + plik1.nazwa + '.' + plik1.rozszerzenie);
                    plik2.zmien_nazwe_pliku(x);
                    string nowykatalog = sciezka_katalogu_z_pol(plik1, true, dodawanie_jednego_pliku);
                    Directory.CreateDirectory(nowykatalog);
                    plik1.zmien_nazwe_pliku(Path.Combine(nowykatalog, plik1.nazwa + '.' + plik1.rozszerzenie));
                }
            }
            else if (preferowane == plik1.rozszerzenie && preferowane != plik2.rozszerzenie)
            {
                //pierwszy plik zostaje gdzie jest, drugi idzie do zduplikowanych
                string nowykatalog = sciezka_katalogu_z_pol(plik2, true, dodawanie_jednego_pliku);
                Directory.CreateDirectory(nowykatalog);
                plik2.zmien_nazwe_pliku(Path.Combine(nowykatalog, plik2.nazwa + '.' + plik2.rozszerzenie));
            }
            else if (preferowane != plik1.rozszerzenie && preferowane == plik2.rozszerzenie)
            {
                //drugi plik zajmuje miejsce pierwszego, pierwszy idzie do zduplikowanych
                plik1.zmien_nazwe_pliku(@"Musesort\Zduplikowane\Temp\" + plik1.nazwa + '.' + plik1.rozszerzenie);
                plik2.zmien_nazwe_pliku(x);
                string nowykatalog = sciezka_katalogu_z_pol(plik1, true, dodawanie_jednego_pliku);
                Directory.CreateDirectory(nowykatalog);
                plik1.zmien_nazwe_pliku(Path.Combine(nowykatalog, plik1.nazwa + '.' + plik1.rozszerzenie));
            }
            else
            {
                MessageBox.Show("Cos sie syplo!", "", MessageBoxButtons.OK);
            }
        }
예제 #4
0
        //Otwórz plik
        private void otwoz_plik_button_Click(object sender, EventArgs e)
        {
            //string filepath = "";
            string filter = "Muzyka |";
            foreach (string extension in utwor.wspierane_rozszerzenia)
                filter += "*." + extension + ";";

            openFileDialog1.Filter = filter;
            openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);  // <--- TODO to powinna być zmienna konfiguracyjna w programie
            openFileDialog1.FileName = "";
            DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
            if (result == DialogResult.OK) // Test result.
            {
                //filepath = openFileDialog1.FileName;
                plik = new utwor(openFileDialog1.FileName);
                plik.przepisz_tagi();
                wczytaj_plik_do_boxow();
            }
        }