/// <summary>Dodaje zawartość podanego posortowanego katalogu do katalogu głównego. /// </summary> /// <remarks>Implementacja: Krzysztof</remarks> /// <param name="folder">Folder do dodania.</param> public void dodajFolder(Folder folder) { /* Zwraca że nie jest prawidłowo posortowane na posortowanym katalogu. if (!folder.analizuj()) { throw new InvalidOperationException("Próba dodawania folderu " + folder.Sciezka + " do folderu głównego nie powiodła się, gdyż nie jest on posortowany."); }*/ string nazwaFolderu = new DirectoryInfo(folder.Sciezka).Parent.Name; try { var destinationDirectoryName = Path.Combine(sciezka, nazwaFolderu); Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory(folder.Sciezka, destinationDirectoryName); logi += "Przeniesiono folder: " + folder.Sciezka + " do folderu: " + this.sciezka + Environment.NewLine; } /* * IOException rzucane jest w 3 przypadkach: * Source jest root: niemożliwe, bo source to podfolder Musesort wybranego folderu. * Source path==target path: możliwość już obsłużona w MainGUI.dodajDoGlownegoFolderuButton_Click. * A więc rzucane jest z powodu kolizji plików zaś e.Data.Keys będzie zawierał pliki w folderze źródłowym które kolidują. */ catch (IOException e) { foreach (string plikDodawany in e.Data.Keys) { string plikDodawanyFolderRelatywny = Directory.GetParent(plikDodawany).ToString().Substring(folder.Sciezka.Length); string nazwaPliku = Path.GetFileName(plikDodawany); int i = 1; string nowaSciezka = Path.Combine(this.sciezka, nazwaFolderu, plikDodawanyFolderRelatywny + "(" + i + ")", nazwaPliku); for (; File.Exists(nowaSciezka); i++) { nowaSciezka = Path.Combine(this.sciezka, nazwaFolderu, plikDodawanyFolderRelatywny + "(" + i + ")", nazwaPliku); } Directory.CreateDirectory(Directory.GetParent(nowaSciezka).ToString()); //Tworzymy katalog jeśli potrzeba. File.Copy(plikDodawany, nowaSciezka); //Kopiujemy plik. logi += "Przeniesiono plik: " + plikDodawany + " do sciezki: " + nowaSciezka + Environment.NewLine; } } catch (UnauthorizedAccessException) { System.Windows.Forms.MessageBox.Show("UnauthorizedAccessException: Uprawnień do folderu."); logi += "UnauthorizedAccessException: Brak uprawnień do folderu." + Environment.NewLine; return; } catch (System.Security.SecurityException) { System.Windows.Forms.MessageBox.Show("SecurityException: Uprawnień do folderu."); logi += "UnauthorizedAccessException: Brak uprawnień do folderu." + Environment.NewLine; return; } System.Windows.Forms.MessageBox.Show("Operacja zakończona."); }
public void KonstruktorTest() { using (ShimsContext.Create()) { ShimFolderXML.ConstructorString = (@this, path) => { }; ShimFolderXML.AllInstances.analizuj = @this => false; ShimDirectory.ExistsString = path => path == _sciezkaMuzyka; var folder = new Folder(_sciezkaMuzyka); Assert.AreEqual(_sciezkaMuzyka, folder.Sciezka); Assert.AreEqual("", folder.logi); } }
public void AnalizujTest() { using (ShimsContext.Create()) { ShimFolderXML.ConstructorString = (@this, path) => { }; ShimFolderXML.AllInstances.analizuj = @this => false; ShimFile.ExistsString = path => path == _sciezkaMuzyka; var folder = new Folder(_sciezkaMuzyka); Assert.IsFalse(folder.analizuj()); ShimFolderXML.AllInstances.analizuj = @this => true; Assert.IsTrue(folder.analizuj()); } }
private void dodajButton_Click(object sender, EventArgs e) { String source; String destination; if (sourceFolderTextBox.Text == "") { MessageBox.Show("Nie został wybrany folder do dodania!"); return; } else { source = sourceFolderTextBox.Text; } if (destinationFolderTextBox.Text == "") { MessageBox.Show("Nie został wybrany folder docelowy!"); return; } else { destination = destinationFolderTextBox.Text; } if (!(Directory.Exists(source) || Directory.Exists(destination))) { MessageBox.Show("Błąd podanych katalogów!"); return; } Folder docelowy = new Folder(destination); if (!docelowy.analizuj()) { MessageBox.Show("Folder docelowy nie został posortowany!"); return; } //MessageBox.Show("Dodawanie rozpoczęte."); AkcjaDialog dlg = new AkcjaDialog("Dodawanie plików do folderu"); dlg.Show(); docelowy.dodajIPosortujFolder(source, UstawieniaProgramu.getInstance().wspieraneRozszerzeniaAudio); logiTextBox.Text += docelowy.logi; dlg.Dispose(); MessageBox.Show("Pomyślnie dodano pliki."); dodajPanel.Visible = false; }
private void sortujPlikiButton_Click(object sender, EventArgs e) { niestandardoweSortowaniePanel.Visible = false; if (drzewoFolderow.SelectedNode == null || aktualnyFolder.SelectedItems.Count == 0) { MessageBox.Show("Nie został wybrany folder do posortowania!"); return; } String sciezka = drzewoFolderow.SelectedNode.Name + "\\" + aktualnyFolder.SelectedItems[0].Text; if (!Directory.Exists(sciezka)) return; AkcjaDialog dlg = new AkcjaDialog("Sortowanie plików"); dlg.Show(); Folder folder = new Folder(sciezka) {progressBar2 = toolStripProgressBar1.ProgressBar}; folder.ustalSchemat(UstawieniaProgramu.getInstance().domyslneSortowanieMuzyki); folder.sortuj(UstawieniaProgramu.getInstance().wspieraneRozszerzeniaAudio); folder.ustalSchemat(UstawieniaProgramu.getInstance().domyslneSortowanieFilmow); folder.sortuj(UstawieniaProgramu.getInstance().wspieraneRozszerzeniaVideo); dlg.Dispose(); logiTextBox.Text += folder.logi; }
private void dodajPlikDoGlownegoFolderuButton_Click(object sender, EventArgs e) { niestandardoweSortowaniePanel.Visible = false; if (folderGlowny == null || folderGlowny.Sciezka == "") { MessageBox.Show("Nie został ustawiony folder główny!"); return; } if (drzewoFolderow.SelectedNode == null || aktualnyFolder.SelectedItems.Count == 0) { MessageBox.Show("Nie został wybrany folder do dodania!"); return; } String sciezka = drzewoFolderow.SelectedNode.Name + "\\" + aktualnyFolder.SelectedItems[0].Text; if (sciezka == folderGlowny.Sciezka) { MessageBox.Show("Próba dodania folderu głównego do folderu głównego!"); return; } if (System.IO.Directory.Exists(sciezka)) { Folder temp = new Folder(sciezka); if (temp.analizuj()) { AkcjaDialog dlg = new AkcjaDialog("Dodawanie do głównego folderu"); dlg.Show(); folderGlowny.dodajFolder(sciezka); dlg.Dispose(); logiTextBox.Text += folderGlowny.logi; } else { MessageBox.Show("Folder nie został posortowany!"); return; } } }
private static Folder CreateTestFolder(string sciezkaTestowa, string schemat) { var testFolder = new Folder(sciezkaTestowa); var progressBar = new ProgressBar(); testFolder.progressBar2 = progressBar; testFolder.ustalSchemat(schemat); return testFolder; }