⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainform.cs

📁 自己写的可扩展插件文件管理器
💻 CS
📖 第 1 页 / 共 2 页
字号:
            }
        }

        private void lvFiles_ItemMouseHover(object sender, ListViewItemMouseHoverEventArgs e)
        {
            string p = exTree.SelectedPath + "\\" + e.Item.Text;
                if (File.Exists(p))
                {
                    try
                    {
                        FileInfo f = new FileInfo(p);
                        string Size;
                        if (f.Length < 1024)
                            Size = f.Length + "字节";
                        else if (f.Length < 1048576)
                            Size = (f.Length / 1024).ToString() + "Kbytes";
                        else if (f.Length < 1073741824)
                            Size = (f.Length / 1048576).ToString() + "Mbytes";
                        else
                            Size = (f.Length / 1073741824).ToString() + "Gbytes";
                        e.Item.ToolTipText = e.Item.Text + "\n" +
                                        "大小:" + Size + "\n" +
                                        "最后修改:" + f.LastWriteTime.ToLocalTime().ToString() + "\n" +
                                        "创建于:" + f.CreationTime.ToLocalTime().ToString();
                    }
                    catch (Exception)
                    {
                        e.Item.ToolTipText = "无法访问";
                    }
                }
                else
                {
                    try
                    {
                        DirectoryInfo di = new DirectoryInfo(p);
                        e.Item.ToolTipText = e.Item.Text + "\n" +
                                      "文件夹数:" + di.GetDirectories().Length.ToString() + "\n" +
                                      "文件数:" + di.GetFiles().Length.ToString() + "\n" +
                                        "最后修改:" + di.LastWriteTime.ToLocalTime().ToString() + "\n" +
                                        "创建于:" + di.CreationTime.ToLocalTime().ToString();
                    }
                    catch (Exception)
                    {
                        e.Item.ToolTipText="无法访问";
                        e.Item.BackColor = System.Drawing.Color.Gray;
                        e.Item.Tag = false;
                    }
                }
        }

        private void lvFiles_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Back)
                try
                {
                    exTree.SelectedPath=Directory.GetParent(exTree.SelectedPath).FullName;
                    Refresh();
                }
                catch (Exception)
                {
                    ;
                }
        }

        private void 新建NToolStripButton_Click(object sender, EventArgs e)
        {
            try
            {
                string name = "新建文件夹" + DateTime.Now.Year.ToString() + '-' + DateTime.Now.Month.ToString() + '-' + DateTime.Now.Hour.ToString() + '-' + DateTime.Now.Minute.ToString() + '-' + DateTime.Now.Second.ToString();
                Directory.CreateDirectory(exTree.SelectedPath+ name);
            }
            catch (Exception)
            {
                MessageBox.Show("无法创建新文件夹", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void DeleteFolder(string Path)
        {
            string[] ds = System.IO.Directory.GetDirectories(Path);
            string[] fs = System.IO.Directory.GetFiles(Path);
            foreach (string s in fs)
                System.IO.File.Delete(s);
            foreach (string s in ds)
            {
                if ((System.IO.Directory.GetDirectories(s).Length == 0) && (System.IO.Directory.GetFiles(s).Length == 0))
                    System.IO.Directory.Delete(s);
                else
                    DeleteFolder(s);
            }
            System.IO.Directory.Delete(Path);
        }

        private void 打开OToolStripButton_Click(object sender, EventArgs e)
        {
            if (al.Count > 0)
            {
                string text;
                if (al.Count > 1)
                    text = "您确定要永久删除这" + al.Count + "项吗?";
                else
                    text = "您确定要永久删除" + al[0] + "吗?";
                if (MessageBox.Show(text, "确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                {
                    foreach (string s in al)
                    {

                        try
                        {
                            if (System.IO.File.Exists(s))
                                System.IO.File.Delete(s);
                            else
                                while (System.IO.Directory.Exists(s))
                                    DeleteFolder(s);
                        }
                        catch (Exception err)
                        {
                            MessageBox.Show(err.Message + "\n", "无法删除", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            continue;
                        }
                    }
                }
            }
        }

        private void 保存SToolStripButton_Click(object sender, EventArgs e)
        {
            ToCopies.Clear();
            if (al.Count > 0)
            {
                foreach (string s in al)
                    ToCopies.Add(s);
                DelOrigin = false;
                tsbPaste.Enabled = true;
            }
        }

        public static void copyDirectory(string Src, string Dst)
        {
            String[] Files;
            if (Dst[Dst.Length - 1] != Path.DirectorySeparatorChar)
                Dst += Path.DirectorySeparatorChar;
            if (!Directory.Exists(Dst)) Directory.CreateDirectory(Dst);
            Files = Directory.GetFileSystemEntries(Src);
            foreach (string Element in Files)
            {
                // Sub directories
                if (Directory.Exists(Element))
                    copyDirectory(Element, Dst + Path.GetFileName(Element));
                // Files in directory
                else
                    File.Copy(Element, Dst + Path.GetFileName(Element), true);
            }
        }

        private void 剪切UToolStripButton_Click(object sender, EventArgs e)
        {
            if (ToCopies.Count > 0)
            {
                foreach (string s in ToCopies)
                {
                    if (File.Exists(s))
                    {
                        try
                        {
                            FileInfo fi = new FileInfo(s);
                            fi.CopyTo(exTree.SelectedPath+"\\" + fi.Name, true);
                        }
                        catch (Exception err)
                        {
                            MessageBox.Show(err.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            break;
                        }
                    }
                    else
                    {
                              copyDirectory(s,exTree.SelectedPath+"\\"+new DirectoryInfo(s).Name);
                    }
                    if (DelOrigin)
                        if (File.Exists(s))
                            File.Delete(s);
                        else
                            while (System.IO.Directory.Exists(s))
                                DeleteFolder(s);
                }
            }
            Refresh();
        }

        private void 打印PToolStripButton_Click(object sender, EventArgs e)
        {
            ToCopies.Clear();
            if (al.Count > 0)
            {
                foreach (string s in al)
                    ToCopies.Add(s);
                DelOrigin = true;
                tsbPaste.Enabled = true;
            }
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            if (lvFiles.SelectedItems.Count == 1)
                lvFiles.SelectedItems[0].BeginEdit();
        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            if ((lvFiles.SelectedItems.Count == 1)&&(File.Exists(exTree.SelectedPath+"\\"+lvFiles.SelectedItems[0].Text)))
                Process.Start(exTree.SelectedPath+lvFiles.SelectedItems[0].Text);
                
        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            try
            {
                exTree.SelectedPath = Directory.GetParent(exTree.SelectedPath).FullName;
                Refresh();
            }
            catch (Exception)
            {
                ;
            }
        }

        private void lvFiles_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lvFiles.SelectedIndices.Count > 0)
            {
                tsbCopy.Enabled = true;
                tsbCut.Enabled = true;
                tsbDelete.Enabled = true;
                if (lvFiles.SelectedIndices.Count == 1)
                {
                    tsbRename.Enabled = true;
                    if (File.Exists(exTree.SelectedPath + "\\" + lvFiles.SelectedItems[0].Text))
                        tsbOpen.Enabled = true;
                    else
                        tsbOpen.Enabled = false;
                }
            }
            else
            {
                tsbCopy.Enabled = false;
                tsbCut.Enabled = false;
                tsbDelete.Enabled = false;
                tsbRename.Enabled = false;
                tsbOpen.Enabled = false;
                tsbDelete.Enabled = false;
             }
        }

        private void lvFiles_Leave(object sender, EventArgs e)
        {
            toolStrip1.Enabled = false;
            tsbCopy.Enabled = false;
            tsbCut.Enabled = false;
            tsbDelete.Enabled = false;
            tsbRename.Enabled = false;
            tsbOpen.Enabled = false;
            tsbDelete.Enabled = false;
        }

        private void lvFiles_Enter(object sender, EventArgs e)
        {
            toolStrip1.Enabled = true;
        }
                    
        }

    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -