private async Task DragDropExplorerImpl(object obj) { var e = (DragEventArgs)obj; if (IsDragNetsphereZip(e)) { await DragDropImpl(e); return; } var files = (string[])e.Data.GetData(DataFormats.FileDrop); files = files .Where(file => Directory.Exists(file) || File.Exists(file)) .ToArray(); try { var folder = CurrentFolder; await FileOperationView.Add(_window, _overlay, _filesystem, folder, files); UpdateListViewItems(); RootFolderNode = CreateFolderTree(); SelectedFolderNode = RootFolderNode.TreeView.Nodes.Find(folder.FullName, true).FirstOrDefault() ?? RootFolderNode; } catch (Exception ex) { TaskDialog.Show(_window, $"Failed to add some files to {CurrentFolder.FullName}", ex); } _overlay.Hide(); }
private async Task RemoveFolderImpl() { if (CurrentFolder == null) { return; } try { var result = await FileOperationView.Delete(_window, _overlay, _filesystem, CurrentFolder); if (!result) { return; } var tv = SelectedFolderNode.TreeView; var node = tv.Nodes.Find(CurrentFolder.FullName, true).FirstOrDefault(); node?.Parent.Nodes.Remove(node); } catch (Exception ex) { TaskDialog.Show(_window, $"Failed to remove folder {CurrentFolder.FullName}", ex); } _overlay.Hide(); }
private async Task ExtractFolderToImpl() { if (CurrentFolder == null) { return; } try { await FileOperationView.Extract(_window, _overlay, _filesystem, CurrentFolder); } catch (Exception ex) { TaskDialog.Show(_window, $"Failed to extract folder {CurrentFolder.FullName}", ex); } _overlay.Hide(); }
private async Task ExtractItemsImpl() { var items = SelectedItems.Where(item => item.Tag != null).Select(item => item.Tag).ToArray(); if (items.Length == 0) { return; } try { await FileOperationView.Extract(_window, _overlay, _filesystem, items); } catch (Exception ex) { TaskDialog.Show(_window, $"Failed to extract {items.Length} items", ex); } _overlay.Hide(); }
private async Task AddFilesImpl() { if (CurrentFolder == null) { return; } try { var result = await FileOperationView.Add(_window, _overlay, _filesystem, CurrentFolder); if (!result) { return; } UpdateListViewItems(); } catch (Exception ex) { TaskDialog.Show(_window, $"Failed to add some files to {CurrentFolder.FullName}", ex); } _overlay.Hide(); }
private async Task RemoveItemsImpl() { var items = SelectedItems.Where(item => item.Tag != null).Select(item => item.Tag).ToArray(); if (items.Length == 0) { return; } try { var result = await FileOperationView.Delete(_window, _overlay, _filesystem, items); if (!result) { return; } foreach (var folder in items.OfType <IFolder>()) { var node = SelectedFolderNode.Nodes .Cast <TreeNode>() .FirstOrDefault(x => x.Text.Equals(folder.Name, StringComparison.OrdinalIgnoreCase)); if (node != null) { SelectedFolderNode.Nodes.Remove(node); } } UpdateListViewItems(); } catch (Exception ex) { TaskDialog.Show(_window, "Failed to delete some items", ex); } _overlay.Hide(); }