private void ActionMoveCopyAction(FileAction action) { try { if (DroppedFiles != null) { FileExplorerTreeItem item = (FileExplorerTreeItem)DroppedTreeviewItem.DataContext; foreach (var file in DroppedFiles) { switch (action) { case FileAction.Copy: File.Copy(file, Path.Combine(item.FullName, Path.GetFileName(file))); break; case FileAction.Move: File.Move(file, Path.Combine(item.FullName, Path.GetFileName(file))); break; } } LoadTreeItems(ref item); DroppedTreeviewItem = null; DroppedFiles = null; FileActionSuccess?.Invoke(true, action); } } catch (Exception ex) { FileActionSuccess?.Invoke(false, action); MessageBox.Show(ex.Message, "An error occurred"); } }
private void tvwExplorer_Expanded(object sender, RoutedEventArgs e) { FileExplorerTreeItem item = (e.OriginalSource as TreeViewItem).DataContext as FileExplorerTreeItem; if ((item.Items.Count == 1) && (item.Items[0].FullName == null)) { LoadTreeItems(ref item); } }
public FileExplorerTree() { InitializeComponent(); folderIconStream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("VenoMpie.Common.WPF.Controls.FileExplorer.Icons.folder.png"); driveIconStream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("VenoMpie.Common.WPF.Controls.FileExplorer.Icons.drive.png"); folderIcon = BitmapHelpers.ConvertStreamToBitmapImage(folderIconStream); driveIcon = BitmapHelpers.ConvertStreamToBitmapImage(driveIconStream); DriveInfo[] drives = DriveInfo.GetDrives(); foreach (DriveInfo driveInfo in drives) { FileExplorerTreeItem fe = new FileExplorerTreeItem(driveInfo, driveIcon); fe.Items.Add(new FileExplorerTreeItem()); myList.Add(fe); } tvwExplorer.ItemsSource = myList; }
private void LoadTreeItems(ref FileExplorerTreeItem item) { item.Items.Clear(); try { foreach (DirectoryInfo subDir in new DirectoryInfo(item.FullName).GetDirectories()) { FileExplorerTreeItem fe = new FileExplorerTreeItem(subDir, folderIcon); fe.Items.Add(new FileExplorerTreeItem()); item.Items.Add(fe); } if (ShowFiles) { foreach (FileInfo subFile in new DirectoryInfo(item.FullName).GetFiles()) { item.Items.Add(new FileExplorerTreeItem(subFile)); } } } catch { } }