コード例 #1
0
        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);
                }
            });
        }
コード例 #2
0
        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;
        }