public OknoEdytujDane(String sciezka) { InitializeComponent(); plik = new utwor(sciezka); plik.przepisz_tagi(); wczytaj_plik_do_boxow(); }
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 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); } }
//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(); } }