/// <summary> /// When a handler is closed /// </summary> /// <param name="o_sender">>object sender</param> /// <param name="event_args">event data</param> public void OnCloseHandler(object o_sender, DirectoryCloseEventArgs event_args) { try { //Unables raising events this.model_watcher.EnableRaisingEvents = false; Watcher.Created -= new FileSystemEventHandler(OnCreated); CloseDirectory?.Invoke(this, new DirectoryCloseEventArgs(path, "Dir " + this.path + " closed")); } catch (Exception ex) { //In case an error occured this.model_logging.Log("handler closure error: " + this.path + "because of " + ex.Message, MessageTypeEnum.FAIL); } }
/// <summary> /// Покинуть текущий каталог /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonLeaveCurrentDirectory_Click(object sender, EventArgs e) { CloseDirectory closeDirectory = new CloseDirectory(fileSystem); if (!fileSystem.ExecuteCommand(closeDirectory)) { MessageBox.Show("Возможно, вы находимтесь в корневом каталоге. Его закрыть нельзя", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { ReadDirectory readDirectory = new ReadDirectory(fileSystem); if (!fileSystem.ExecuteCommand(readDirectory)) { MessageBox.Show("Проверяй массив object-ов, похоже неверный апкаст", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); } textBoxSubdirectories.Clear(); for (int i = 0; i < fileSystem.FilesAndDirectoriesInDirectory.Count; i++) { textBoxSubdirectories.Text += "\"" + fileSystem.FilesAndDirectoriesInDirectory[i] + "\"" + " "; } } }