Esempio n. 1
0
        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int count = listView2.SelectedItems.Count;

            SetContentMenuItem(count == 0);

            if (count == 1)
            {
                SetContentMenuItem2(true);
                ListViewItem        row   = listView2.SelectedItems[0];
                ChannelSftp.LsEntry entry = (ChannelSftp.LsEntry)row.Tag;
                if (entry.getAttrs().isDir())
                {
                    openToolStripMenuItem.Visible = true;
                    editToolStripMenuItem.Visible = false;
                }
                else
                {
                    openToolStripMenuItem.Visible = false;
                    editToolStripMenuItem.Visible = true;
                }
            }
            else if (count > 1)
            {
                SetContentMenuItem2(false);
            }
        }
Esempio n. 2
0
 public FileAttrForm(ChannelSftp.LsEntry file, SshUser user, String dir)
 {
     InitializeComponent();
     SkinUtil.SetFormSkin(this);
     this.file = file;
     this.user = user;
     this.dir  = dir;
 }
Esempio n. 3
0
        private void propertiesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (listView2.SelectedItems.Count == 1)
            {
                ListViewItem        row  = listView2.SelectedItems[0];
                ChannelSftp.LsEntry file = (ChannelSftp.LsEntry)row.Tag;

                new FileAttrForm(file, user, getCurrDir()).Show(this);
            }
        }
Esempio n. 4
0
        public void Set(string dataPath, string urlPath, ChannelSftp.LsEntry entry)
        {
            urlPath          = _convertPath(urlPath);
            _config[urlPath] = entry.getAttrs().getMTime().ToString(CultureInfo.InvariantCulture);

            var dest = _convertLocalPath(urlPath);

            GrfPath.CreateDirectoryFromFile(dest);
            GrfPath.Delete(dest);
            File.Copy(dataPath, dest);
        }
Esempio n. 5
0
        public bool Exists(string path, ChannelSftp.LsEntry entry)
        {
            path = _convertPath(path);

            var result = _config[path, null];

            if (String.IsNullOrEmpty(result))
            {
                return(false);
            }

            var timeLocal  = Int32.Parse(result);
            var timeSource = entry.getAttrs().getMTime();

            if (timeLocal != timeSource)
            {
                return(false);
            }

            return(true);
        }
Esempio n. 6
0
 private void listView2_MouseDoubleClick(object sender, MouseEventArgs e)
 {
     if (listView2.SelectedItems.Count > 0)
     {
         ListViewItem        row   = listView2.SelectedItems[0];
         ChannelSftp.LsEntry entry = (ChannelSftp.LsEntry)row.Tag;
         if (entry.getAttrs().isDir())
         {
             if (entry.getFilename() == "..")
             {
                 // 上一层
                 OpenUpDir();
             }
             else
             {
                 // 进入下一层
                 OpenDownDir(getCurrDir() + entry.getFilename());
             }
         }
     }
 }
Esempio n. 7
0
        private void editToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (listView2.SelectedItems.Count > 0)
            {
                ListViewItem        row   = listView2.SelectedItems[0];
                ChannelSftp.LsEntry entry = (ChannelSftp.LsEntry)row.Tag;
                if (!entry.getAttrs().isDir())
                {
                    try
                    {
                        string resfile    = getCurrDir() + entry.getFilename();
                        string targetfile = MainForm.TEMP_DIR + string.Format("{0}.file", DateTime.Now.ToString("MMddHHmmss"));
                        targetfile = targetfile.Replace("\\", "/");

                        TextEditorForm editor = new TextEditorForm();
                        editor.Show(this);
                        editor.LoadRemoteFile(new ShellForm(this), resfile, targetfile);
                    }
                    catch { }
                }
            }
        }
Esempio n. 8
0
        private void renameToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int count = listView2.SelectedItems.Count;

            if (count > 0)
            {
                ListViewItem row = listView2.SelectedItems[0];
                if (row != null)
                {
                    string oldName            = row.Text;
                    ChannelSftp.LsEntry entry = (ChannelSftp.LsEntry)row.Tag;
                    string msg = "请输入文件夹的新名称";
                    if (!entry.getAttrs().isDir())
                    {
                        msg = "请输入文件的新名称";
                    }
                    InputForm form = new InputForm(msg, oldName, new InputForm.FormResult((newName) =>
                    {
                        if (oldName != newName)
                        {
                            string dirs  = getCurrDir();
                            string path1 = dirs + Utils.getLinuxName(oldName);
                            string path2 = dirs + Utils.getLinuxName(newName);
                            SendShell(string.Format("mv {0} {1}", path1, path2));

                            ThreadPool.QueueUserWorkItem((a) =>
                            {
                                Thread.Sleep(500);
                                RefreshFiles();
                            });
                        }
                    }));
                    form.ShowDialog(this);
                }
            }
        }
Esempio n. 9
0
        public void LoadDirFilesToListView(string path, LoadFilesResult result = null)
        {
            this.BeginInvoke((MethodInvoker) delegate()
            {
                try
                {
                    if (null == sftpChannel)
                    {
                        return;
                    }
                    ArrayList files = sftpChannel.ls(path);
                    if (files != null)
                    {
                        ChannelSftp.LsEntry file = null;
                        listView2.Items.Clear();
                        LargeImages.Images.Clear();
                        SmallImages.Images.Clear();

                        LargeImages.Images.Add(Properties.Resources.filen_64px);
                        LargeImages.Images.Add(Properties.Resources.folder_64px);
                        SmallImages.Images.Add(Properties.Resources.filen_16px);
                        SmallImages.Images.Add(Properties.Resources.folder_16px);

                        ListViewItem item = null;
                        ListViewItem.ListViewSubItem subItem = null;
                        List <ListViewItem> itemList         = new List <ListViewItem>();
                        for (int i = 0; i < files.Count; i++)
                        {
                            object obj = files[i];
                            if (obj is ChannelSftp.LsEntry)
                            {
                                file = (ChannelSftp.LsEntry)obj;
                                if (file.getFilename() == ".")
                                {
                                    continue;
                                }

                                item      = new ListViewItem();
                                item.Text = file.getFilename();
                                item.Tag  = file;

                                if (file.getFilename() != "..")
                                {
                                    subItem      = new ListViewItem.ListViewSubItem();
                                    subItem.Text = Utils.getFileSize(file.getAttrs().getSize());
                                    item.SubItems.Add(subItem);

                                    subItem      = new ListViewItem.ListViewSubItem();
                                    subItem.Text = file.getAttrs().isDir() ? "文件夹" : file.getAttrs().isLink() ? "快捷方式" : getFileExt(file.getFilename());
                                    item.SubItems.Add(subItem);

                                    subItem      = new ListViewItem.ListViewSubItem();
                                    subItem.Text = file.getAttrs().getMtimeString();
                                    item.SubItems.Add(subItem);

                                    subItem      = new ListViewItem.ListViewSubItem();
                                    subItem.Text = file.getAttrs().getPermissionsString();
                                    item.SubItems.Add(subItem);

                                    subItem      = new ListViewItem.ListViewSubItem();
                                    subItem.Text = getFileOwner(file.getLongname());
                                    item.SubItems.Add(subItem);

                                    item.ImageIndex = file.getAttrs().isDir() ? 1 : 0;
                                    if (file.getAttrs().isDir())
                                    {
                                        listView2.Items.Add(item);
                                    }
                                    else
                                    {
                                        itemList.Add(item);
                                    }
                                }
                                else
                                {
                                    subItem      = new ListViewItem.ListViewSubItem();
                                    subItem.Text = "";
                                    item.SubItems.Add(subItem);
                                    subItem      = new ListViewItem.ListViewSubItem();
                                    subItem.Text = "";
                                    item.SubItems.Add(subItem);
                                    subItem      = new ListViewItem.ListViewSubItem();
                                    subItem.Text = "";
                                    item.SubItems.Add(subItem);
                                    subItem      = new ListViewItem.ListViewSubItem();
                                    subItem.Text = "";
                                    item.SubItems.Add(subItem);
                                    subItem      = new ListViewItem.ListViewSubItem();
                                    subItem.Text = "";
                                    item.SubItems.Add(subItem);
                                    item.ImageIndex = 1;
                                    listView2.Items.Add(item);
                                }
                            }
                        }
                        foreach (ListViewItem item2 in itemList)
                        {
                            listView2.Items.Add(item2);
                        }
                        if (null != result)
                        {
                            result();
                        }
                    }
                    else
                    {
                        MessageBox.Show(this, "目录不存在", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                catch (Exception e) {
                    logger.Error("加载数据失败:" + e.Message, e);
                    if (!success)
                    {
                        sftpForm.CloseTab(this);
                    }
                }
            });
        }
Esempio n. 10
0
        public void LoadRemoteYmls()
        {
            btn_reload.Enabled = false;
            ArrayList fileList = monitorForm.getDirFiles(remoteCfgPath);

            if (null != fileList)
            {
                if (fileList.Count > 0)
                {
                    label1.Visible = false;

                    listView1.Items.Clear();
                    ListViewItem        item = null;
                    ChannelSftp.LsEntry file = null;
                    YmlFile             yml = null;
                    string remotePath = "", localPath = "";
                    for (int i = 0; i < fileList.Count; i++)
                    {
                        object obj = fileList[i];
                        if (obj is ChannelSftp.LsEntry)
                        {
                            file = (ChannelSftp.LsEntry)obj;
                            try
                            {
                                yml            = new YmlFile();
                                yml.correct    = true;
                                yml.localName  = file.getFilename();
                                yml.localPath  = cfgDir + "/";
                                yml.remoteName = file.getFilename();
                                yml.remotePath = remoteCfgPath + "/";
                                yml.status     = YmlFileState.NoModif;

                                item            = new ListViewItem();
                                item.Text       = file.getFilename();
                                item.Tag        = yml;
                                item.ImageIndex = 1;

                                remotePath = yml.remotePath + yml.remoteName;
                                localPath  = yml.localPath + yml.localName;

                                downloadFile(remotePath, localPath);

                                listView1.Items.Add(item);
                            }
                            catch { }
                        }
                    }
                }
                else
                {
                    label1.Text    = "暂无文件";
                    label1.Visible = true;
                }
            }
            else
            {
                label1.Text    = "加载失败";
                label1.Visible = true;
            }

            btn_reload.Enabled = true;
        }