private void MoveClick(object sender, RoutedEventArgs e) { //получение ответа от диалога задания пути var dialog = new MoveOrCopyDestination(); dialog.ShowDialog(); if (MoveOrCopyDestination.Dir != null) { var newDirectory = MoveOrCopyDestination.Dir.ToString(); var treeItem = (TreeDirView.SelectedItem as TreeViewItem); if (treeItem != null) { var dirOrFile = treeItem.Tag; var fdName = dirOrFile.ToString(); if (dirOrFile is FileInfo) { var curFile = dirOrFile as FileInfo; if (!File.Exists(Path.Combine(newDirectory, fdName))) { //перемещаем файл File.Move(curFile.FullName, Path.Combine(newDirectory, fdName)); SyncListView(dirOrFile, newDirectory, fdName); } } else if (dirOrFile is DirectoryInfo) { //перемещаем папку var curDir = dirOrFile as DirectoryInfo; var destinationDir = Path.Combine(newDirectory, dirOrFile.ToString()); if (!Directory.Exists(destinationDir)) { Directory.CreateDirectory(destinationDir); FileSystem.MoveDirectory(curDir.FullName, destinationDir, UIOption.AllDialogs); SyncListView(dirOrFile, newDirectory, fdName); } } } //обновляем TreeView и ListView TreeDirView.Items.Remove(TreeDirView.SelectedItem); TreeDirView.Items.Refresh(); //TreeViewBuild(); RefreshListView(); } else { LabelStatus.Content = "Перемещение не осуществлено, так как не указан путь перемещения объекта..."; } }
private void CopyClick(object sender, RoutedEventArgs e) { var dialog = new MoveOrCopyDestination(); dialog.ShowDialog(); var oldDirectory = new DirectoryInfo(_fullPath).ToString(); if (MoveOrCopyDestination.Dir != null) { var newDirectory = MoveOrCopyDestination.Dir.ToString(); Copy(oldDirectory, newDirectory); TreeDirView.Items.Refresh(); //TreeViewBuild(); } else { LabelStatus.Content = "Копирование не осуществлено, так как не указан путь копирования..."; } }