public void DeleteSelectedItems() { if (ListView_.SelectedIndices.Count < 2) { if (ListView_.FocusedItem != null) { if (ListView_.FocusedItem.Tag is DirectoryInfo) { PathHelper.DeleteFileOrPath(((DirectoryInfo)ListView_.FocusedItem.Tag).FullName); } else if (ListView_.FocusedItem.Tag is FileInfo) { PathHelper.DeleteFileOrPath(((FileInfo)ListView_.FocusedItem.Tag).FullName); } } return; } if (AskConfirmationOnDelete) { if (MessageBox.Show(this, $"Are you sure you want to delete {ListView_.SelectedIndices.Count} items?\n", "Delete Files?", MessageBoxButtons.YesNo) == DialogResult.No) { return; } } string[] del = new string[ListView_.SelectedIndices.Count]; int c = 0; foreach (int i in ListView_.SelectedIndices) { if (ListView_.Items[i].Tag is DirectoryInfo) { del[c++] = ((DirectoryInfo)ListView_.Items[i].Tag).FullName; } else if (ListView_.Items[i].Tag is FileInfo) { del[c++] = ((FileInfo)ListView_.Items[i].Tag).FullName; } } ListView_.DeselectAll(); Task.Run(() => { foreach (string i in del) { PathHelper.DeleteFileOrPath(i); } }); }
public FolderView() { InitializeComponent(); this.textBox1.ShortcutsEnabled = true; _ListViewItemCache = new ListViewItem[0]; // SuggestAppend is nice, but if you hit ctrl + A while its suggesting it just empties the textbox this.textBox1.AutoCompleteMode = AutoCompleteMode.Suggest; this.textBox1.AutoCompleteSource = AutoCompleteSource.FileSystemDirectories; _iconList16.ImageSize = new Size(16, 16); _iconList16.ColorDepth = ColorDepth.Depth24Bit; _iconList16.Images.Add(ApplicationStyles.Resources.Folder16); ListView_.RetrieveVirtualItem += new RetrieveVirtualItemEventHandler(listView1_RetrieveVirtualItem); ListView_.CacheVirtualItems += new CacheVirtualItemsEventHandler(listView1_CacheVirtualItems); ListView_.ItemActivate += ListView1_ItemActivate; ListView_.KeyUp += OnKeyUp; ListView_.SmallImageList = _iconList16; ListView_.GridLines = false; ListView_.VirtualMode = true; ListView_.VirtualListSize = 0; ListView_.Sorting = SortOrder.None; ListView_.FullRowSelect = true; ListView_.AllowDrop = true; _FolderWatcher = new FolderWatcher(PathHelper.GetScreenshotFolder()); _FolderWatcher.WatcherNotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName; _FolderWatcher.FilterFileExtensions = InternalSettings.Readable_Image_Formats.ToArray(); _FolderWatcher.FileRemoved += _FolderWatcher_FileRemoved; _FolderWatcher.DirectoryRemoved += _FolderWatcher_DirectoryRemoved; _FolderWatcher.FileAdded += _FolderWatcher_FileAdded; _FolderWatcher.DirectoryAdded += _FolderWatcher_DirectoryAdded; _FolderWatcher.DirectoryRenamed += _FolderWatcher_DirectoryRenamed; _FolderWatcher.FileRenamed += _FolderWatcher_FileRenamed; _FolderWatcher.ItemChanged += _FolderWatcher_ItemChanged; _FolderWatcher.SortOrderChanged += _FolderWatcher_SortOrderChanged; ListView_.UpdateTheme(); ListView_.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); ListView_.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); _ListviewRefreshTimer.Tick += _ListviewRefreshTimer_Tick; _ListviewRefreshTimer.SetInterval(500); UpdateTheme(); ApplicationStyles.UpdateThemeEvent += UpdateTheme; }