예제 #1
0
 public override int OnCompare(ListItemInfo x, ListItemInfo y, string xtext, string ytext)
 {
     if (x.FileInfo.Length == y.FileInfo.Length)
     {
         return(0);
     }
     return(x.FileInfo.Length > y.FileInfo.Length ? 1 : -1);
 }
예제 #2
0
        public void ListFiles(List <ListItemInfo> viewList, ListView listView, bool local)
        {
            ListViewItem item;

            // Clear the list.
            listView.Items.Clear();

            for (int i = 0; i < viewList.Count; i++)
            {
                ListItemInfo     listitem = viewList[i];
                AbstractFileInfo f        = listitem.FileInfo;

                if (f.IsDirectory)
                {
                    item = listView.Items.Add(f.Name, _folderIconIndex);

                    item.SubItems.Add("");
                }
                else
                {
                    if (listitem.LinkedFile != null)
                    {
                        item = listView.Items.Add(f.Name, listitem.LinkedFile.IsDirectory ? FolderLinkImageIndex : SymlinkImageIndex);
                    }
                    else
                    {
                        item = listView.Items.Add(f.Name, SetFileIcon(Path.Combine(txtLocalDir.Text, f.Name)));
                    }

                    item.SubItems.Add(Util.FormatSize(f.Length));
                }

                if (f.LastWriteTime != DateTime.MinValue)
                {
                    item.SubItems.Add(f.LastWriteTime.ToString());
                }
                item.SubItems.Add(listitem.Permissions);
                item.Tag = listitem;
            }

            if (local)
            {
                UpdateLocalListViewSorter();
            }
            else
            {
                UpdateRemoteListViewSorter();
            }

            if (viewList.Count > 0)
            {
                listView.Items[0].Selected = true;
            }
        }
예제 #3
0
        private void ListFiles(FileInfoCollection files, bool rootDir, bool local)
        {
            List <ListItemInfo> viewList = new List <ListItemInfo>();
            ListItemInfo        item;

            // Add directories into the list first.
            for (int i = 0; i < files.Count; i++)
            {
                AbstractFileInfo f = files[i];

                if (f.IsDirectory)
                {
                    if (f.Name != "." && f.Name != "..")
                    {
                        item          = new ListItemInfo();
                        item.FileInfo = f;

                        if (!local)
                        {
                            item.Permissions = _clientPlugin.GetPermissionsString(f);
                        }

                        viewList.Add(item);
                    }
                }
                else if (f.IsSymlink) // Add symlinks.
                {
                    item             = new ListItemInfo();
                    item.FileInfo    = f;
                    item.LinkedFile  = _client.GetFileInfo(f.SymlinkPath);
                    item.Permissions = _clientPlugin.GetPermissionsString(f);

                    viewList.Add(item);
                }
                else //Add Files.
                {
                    item          = new ListItemInfo();
                    item.FileInfo = f;
                    if (!local)
                    {
                        item.Permissions = _clientPlugin.GetPermissionsString(f);
                    }

                    viewList.Add(item);
                }
            }

            if (!rootDir)
            {
                // Add Cdup list item.
                item = new ListItemInfo();
                if (local)
                {
                    item.FileInfo = DiskFileSystem.Default.CreateFileInfo("..", FileAttributes.Directory, -1, DateTime.MinValue);
                }
                else
                {
                    item.FileInfo = _client.CreateFileInfo("..", FileAttributes.Directory, -1, DateTime.MinValue);
                }
                viewList.Add(item);
            }

            if (local)
            {
                _view.ListLocalFiles(viewList);
            }
            else
            {
                _view.ListRemoteFiles(viewList);
            }
        }
예제 #4
0
 public override int OnCompare(ListItemInfo x, ListItemInfo y, string xtext, string ytext)
 {
     return(string.Compare(xtext, ytext, true));
 }
예제 #5
0
 public override int OnCompare(ListItemInfo x, ListItemInfo y, string xtext, string ytext)
 {
     return(string.Compare(x.Permissions, x.Permissions));
 }
예제 #6
0
 public override int OnCompare(ListItemInfo x, ListItemInfo y, string xtext, string ytext)
 {
     return(DateTime.Compare(x.FileInfo.LastWriteTime, y.FileInfo.LastWriteTime));
 }
예제 #7
0
 public abstract int OnCompare(ListItemInfo x, ListItemInfo y, string xtext, string ytext);