示例#1
0
        int IComparer.Compare(object x, object y)
        {
            ListViewItem listViewX = (ListViewItem)x;
            ListViewItem listViewY = (ListViewItem)y;

            ListItemInfo itemX = (ListItemInfo)listViewX.Tag;
            ListItemInfo itemY = (ListItemInfo)listViewY.Tag;

            if (itemX.IsDirectory && !itemY.IsDirectory)
            {
                return(-1);
            }

            if (!itemX.IsDirectory && itemY.IsDirectory)
            {
                return(1);
            }

            if (itemX.IsUpper && !itemY.IsUpper)
            {
                return(-1);
            }

            if (!itemX.IsUpper && itemY.IsUpper)
            {
                return(1);
            }

            switch (_comparisonMethod)
            {
            case ComparisonMethod.Name:
                string xname = Path.GetFileName(itemX.FullPath);
                string yname = Path.GetFileName(itemY.FullPath);
                return(_ascending ? string.CompareOrdinal(xname, yname) : string.CompareOrdinal(yname, xname));

            case ComparisonMethod.Ext:
                string xext = Path.GetExtension(itemX.FullPath);
                string yext = Path.GetExtension(itemY.FullPath);
                return(_ascending ? string.CompareOrdinal(xext, yext) : string.CompareOrdinal(yext, xext));

            case ComparisonMethod.Size:
                return(_ascending ? (int)(itemX.Size - itemY.Size) : (int)(itemY.Size - itemX.Size));

            case ComparisonMethod.Date:
                return(_ascending ? CompareTime(itemX.Time, itemY.Time) : CompareTime(itemY.Time, itemX.Time));
            }

            return(0);
        }
示例#2
0
        void ListViewSelectIndexChanged(ListView lv)
        {
            List <ListItemInfo> selectedItems = GetSelectedItems(lv);

            btNewFolder.Enabled        =
                miCreateFolder.Enabled = true;

            miCopy.Enabled       = miDelete.Enabled = miMove.Enabled =
                btDelete.Enabled = selectedItems.Count > 0;

            btCopy.Enabled = btMove.Enabled = selectedItems.Count > 0 && _ftp != null;

            if (selectedItems.Count == 1)
            {
                ListItemInfo info = selectedItems[0];
                miView.Enabled = miEdit.Enabled = btView.Enabled = btEdit.Enabled = info.IsFile;
            }
            else // No files or directories selected or more than one item selected
            {
                miView.Enabled = miEdit.Enabled = btView.Enabled = btEdit.Enabled = false;
            }
        }