Ejemplo n.º 1
0
        //显示属性窗口
        private void ShowAttributeForm()
        {
            //右边窗体中没有文件/文件夹被选中
            if (lvwFiles.SelectedItems.Count == 0)
            {
                if (curFilePath == "最近访问")
                {
                    MessageBox.Show("不能查看当前路径的属性!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                AttributeForm attributeForm = new AttributeForm(curFilePath);

                //显示当前文件夹的属性
                attributeForm.Show();
            }
            //右边窗体中有文件/文件夹被选中
            else
            {
                //显示被选中的第一个文件/文件夹的属性
                AttributeForm attributeForm = new AttributeForm(lvwFiles.SelectedItems[0].Tag.ToString());

                attributeForm.Show();
            }
        }
Ejemplo n.º 2
0
        //将搜索结果显示在文件列表上
        private void AddSearchResultItemIntoList(string fullPath, bool isFile)
        {
            //是文件
            if (isFile)
            {
                FileInfo fileInfo = new FileInfo(fullPath);

                ListViewItem item = lvwFiles.Items.Add(fileInfo.Name);

                //为exe文件或无拓展名
                if (fileInfo.Extension == ".exe" || fileInfo.Extension == "")
                {
                    //通过当前系统获得文件相应图标
                    Icon fileIcon = GetSystemIcon.GetIconByFileName(fileInfo.FullName);

                    //因为不同的exe文件一般图标都不相同,所以不能按拓展名存取图标,应按文件名存取图标
                    ilstIcons.Images.Add(fileInfo.Name, fileIcon);

                    item.ImageKey = fileInfo.Name;
                }
                //其他文件
                else
                {
                    if (!ilstIcons.Images.ContainsKey(fileInfo.Extension))
                    {
                        Icon fileIcon = GetSystemIcon.GetIconByFileName(fileInfo.FullName);

                        //因为类型(除了exe)相同的文件,图标相同,所以可以按拓展名存取图标
                        ilstIcons.Images.Add(fileInfo.Extension, fileIcon);
                    }

                    item.ImageKey = fileInfo.Extension;
                }

                item.Tag = fileInfo.FullName;

                item.SubItems.Add(fileInfo.LastWriteTimeUtc.ToString());
                item.SubItems.Add(fileInfo.Extension + "文件");
                item.SubItems.Add(AttributeForm.ShowFileSize(fileInfo.Length).Split('(')[0]);
            }
            //是文件夹
            else
            {
                DirectoryInfo dirInfo = new DirectoryInfo(fullPath);

                ListViewItem item = lvwFiles.Items.Add(dirInfo.Name, IconsIndexes.Folder);
                item.Tag = dirInfo.FullName;
                item.SubItems.Add(dirInfo.LastWriteTimeUtc.ToString());
                item.SubItems.Add("文件夹");
                item.SubItems.Add("");
            }
        }
Ejemplo n.º 3
0
        //显示进程列表
        private void ShowProcesses()
        {
            lvwProcess.Items.Clear();

            //获取本机的当前所有正在运行的进程
            Process[] processesList = Process.GetProcesses();

            //当前进程数
            txtCurProcessNum.Text = processesList.Length.ToString();

            //有些进程无法获取启动时间和文件名信息,所以要用try/catch
            try
            {
                foreach (Process process in processesList)
                {
                    //进程名称
                    ListViewItem item = lvwProcess.Items.Add(process.ProcessName, IconsIndexes.Process);

                    //进程Id
                    item.SubItems.Add(process.Id.ToString());

                    //专用内存大小
                    item.SubItems.Add(AttributeForm.ShowFileSize(process.PrivateMemorySize64).Split('(')[0]);

                    //虚拟内存大小
                    item.SubItems.Add(AttributeForm.ShowFileSize(process.VirtualMemorySize64).Split('(')[0]);

                    //启动时间
                    item.SubItems.Add(process.StartTime.ToLongDateString() + process.StartTime.ToLongTimeString());

                    //基本优先级
                    item.SubItems.Add(process.BasePriority.ToString());

                    //路径
                    item.SubItems.Add(process.MainModule.FileName);
                }
            }
            catch (Exception e)
            {
            }
        }
Ejemplo n.º 4
0
        //在右窗体中显示指定路径下的所有文件/文件夹
        public void ShowFilesList(string path, bool isRecord)
        {
            //后退按钮可用
            tsbtnBack.Enabled = true;

            //需要保存记录,则需要创建新的路径节点
            if (isRecord)
            {
                //保存用户的历史访问路径
                DoublyLinkedListNode newNode = new DoublyLinkedListNode();
                newNode.Path         = path;
                curPathNode.NextNode = newNode;
                newNode.PreNode      = curPathNode;

                curPathNode = newNode;
            }


            //开始数据更新
            lvwFiles.BeginUpdate();

            //清空lvwFiles
            lvwFiles.Items.Clear();

            if (path == "最近访问")
            {
                //获取最近使用的文件的路径的枚举集合
                var recentFiles = RecentFilesUtil.GetRecentFiles();

                foreach (string file in recentFiles)
                {
                    if (File.Exists(file))
                    {
                        FileInfo fileInfo = new FileInfo(file);

                        ListViewItem item = lvwFiles.Items.Add(fileInfo.Name);

                        //为exe文件或无拓展名
                        if (fileInfo.Extension == ".exe" || fileInfo.Extension == "")
                        {
                            //通过当前系统获得文件相应图标
                            Icon fileIcon = GetSystemIcon.GetIconByFileName(fileInfo.FullName);

                            //因为不同的exe文件一般图标都不相同,所以不能按拓展名存取图标,应按文件名存取图标
                            ilstIcons.Images.Add(fileInfo.Name, fileIcon);

                            item.ImageKey = fileInfo.Name;
                        }
                        //其他文件
                        else
                        {
                            if (!ilstIcons.Images.ContainsKey(fileInfo.Extension))
                            {
                                Icon fileIcon = GetSystemIcon.GetIconByFileName(fileInfo.FullName);

                                //因为类型(除了exe)相同的文件,图标相同,所以可以按拓展名存取图标
                                ilstIcons.Images.Add(fileInfo.Extension, fileIcon);
                            }

                            item.ImageKey = fileInfo.Extension;
                        }

                        item.Tag = fileInfo.FullName;
                        item.SubItems.Add(fileInfo.LastWriteTime.ToString());
                        item.SubItems.Add(fileInfo.Extension + "文件");
                        item.SubItems.Add(AttributeForm.ShowFileSize(fileInfo.Length).Split('(')[0]);
                    }
                    else if (Directory.Exists(file))
                    {
                        DirectoryInfo dirInfo = new DirectoryInfo(file);

                        ListViewItem item = lvwFiles.Items.Add(dirInfo.Name, IconsIndexes.Folder);
                        item.Tag = dirInfo.FullName;
                        item.SubItems.Add(dirInfo.LastWriteTime.ToString());
                        item.SubItems.Add("文件夹");
                        item.SubItems.Add("");
                    }
                }
            }
            else
            {
                try
                {
                    DirectoryInfo   directoryInfo  = new DirectoryInfo(path);
                    DirectoryInfo[] directoryInfos = directoryInfo.GetDirectories();
                    FileInfo[]      fileInfos      = directoryInfo.GetFiles();

                    //删除ilstIcons(ImageList)中的exe文件的图标,释放ilstIcons的空间
                    foreach (ListViewItem item in lvwFiles.Items)
                    {
                        if (item.Text.EndsWith(".exe"))
                        {
                            ilstIcons.Images.RemoveByKey(item.Text);
                        }
                    }



                    //列出所有文件夹
                    foreach (DirectoryInfo dirInfo in directoryInfos)
                    {
                        ListViewItem item = lvwFiles.Items.Add(dirInfo.Name, IconsIndexes.Folder);
                        item.Tag = dirInfo.FullName;
                        item.SubItems.Add(dirInfo.LastWriteTime.ToString());
                        item.SubItems.Add("文件夹");
                        item.SubItems.Add("");
                    }

                    //列出所有文件
                    foreach (FileInfo fileInfo in fileInfos)
                    {
                        ListViewItem item = lvwFiles.Items.Add(fileInfo.Name);

                        //为exe文件或无拓展名
                        if (fileInfo.Extension == ".exe" || fileInfo.Extension == "")
                        {
                            //通过当前系统获得文件相应图标
                            Icon fileIcon = GetSystemIcon.GetIconByFileName(fileInfo.FullName);

                            //因为不同的exe文件一般图标都不相同,所以不能按拓展名存取图标,应按文件名存取图标
                            ilstIcons.Images.Add(fileInfo.Name, fileIcon);

                            item.ImageKey = fileInfo.Name;
                        }
                        //其他文件
                        else
                        {
                            if (!ilstIcons.Images.ContainsKey(fileInfo.Extension))
                            {
                                Icon fileIcon = GetSystemIcon.GetIconByFileName(fileInfo.FullName);

                                //因为类型(除了exe)相同的文件,图标相同,所以可以按拓展名存取图标
                                ilstIcons.Images.Add(fileInfo.Extension, fileIcon);
                            }

                            item.ImageKey = fileInfo.Extension;
                        }

                        item.Tag = fileInfo.FullName;
                        item.SubItems.Add(fileInfo.LastWriteTime.ToString());
                        item.SubItems.Add(fileInfo.Extension + "文件");
                        item.SubItems.Add(AttributeForm.ShowFileSize(fileInfo.Length).Split('(')[0]);
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


            //更新当前路径
            curFilePath = path;

            //更新地址栏
            tscboAddress.Text = curFilePath;

            //更新状态栏
            tsslblFilesNum.Text = lvwFiles.Items.Count + " 个项目";

            //结束数据更新
            lvwFiles.EndUpdate();
        }