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

📄 disksize.cs

📁 磁盘管理和分析软件
💻 CS
📖 第 1 页 / 共 2 页
字号:
                ToolTips[i] = String.Format("{0} ( {1} )", Texts[i], SetBytes);
                Texts[i++] = "";
            }

            pieChartControlFileTypes.Values = Values;
            pieChartControlFileTypes.SliceRelativeDisplacements = Displacements;
            pieChartControlFileTypes.Texts = Texts;
            pieChartControlFileTypes.Colors = Colors;
            pieChartControlFileTypes.ToolTips = ToolTips;
        }

        internal void InitializeDriveChart()
        {
            //dataGridViewDirectory.Visible = false;

            DataTable dtDriveInfo = GetDriveDataTable();
            dataGridViewDirectory.DataSource = dtDriveInfo;
            slblCurrent.Text = "Done";

            InitializeChart(dtDriveInfo);

            //dataGridViewDirectory.Visible = true;

            tvDirectory.SelectedNode.Expand();

            if (dataGridViewDirectory.Columns.Count > 0)
                dataGridViewDirectory.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

            if (dataGridViewDirectory.Columns.Count > 1)
                dataGridViewDirectory.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
        }

        internal void InitializeGrid(DataTable dtDirInfo)
        {
            dataGridViewDirectory.AutoGenerateColumns = true;
            dataGridViewDirectory.DataSource = dtDirInfo;

            if (dataGridViewDirectory.Columns.Count > 0) dataGridViewDirectory.Columns[0].HeaderText = "File / Folder Name";
            if (dataGridViewDirectory.Columns.Count > 1)
            {
                dataGridViewDirectory.Columns[1].HeaderText = "Total Size";
                dataGridViewDirectory.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight;
            }
            if (dataGridViewDirectory.Columns.Count > 2)
            {
                dataGridViewDirectory.Columns[2].HeaderText = "Total Bytes";
                dataGridViewDirectory.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight;
            }
            if (dataGridViewDirectory.Columns.Count > 3) dataGridViewDirectory.Columns[3].HeaderText = "Type";
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="dtDirInfo"></param>
        internal void InitializeChart(DataTable dtDirInfo)
        {

            decimal[] Values = new decimal[dtDirInfo.Rows.Count];
            float[] Displacements = new float[dtDirInfo.Rows.Count];
            string[] Texts = new string[dtDirInfo.Rows.Count];
            string[] ToolTips = new string[dtDirInfo.Rows.Count];

            List<Color> lstColors = new List<Color>();
            lstColors.Add(Color.FromArgb(122, Color.AliceBlue));
            lstColors.Add(Color.FromArgb(122, Color.Aquamarine));
            lstColors.Add(Color.FromArgb(122, Color.Azure));
            lstColors.Add(Color.FromArgb(122, Color.Beige));
            lstColors.Add(Color.FromArgb(122, Color.Bisque));
            lstColors.Add(Color.FromArgb(122, Color.AntiqueWhite));
            lstColors.Add(Color.FromArgb(122, Color.BlanchedAlmond));
            lstColors.Add(Color.FromArgb(122, Color.BlueViolet));
            lstColors.Add(Color.FromArgb(122, Color.BurlyWood));
            lstColors.Add(Color.FromArgb(122, Color.CadetBlue));
            lstColors.Add(Color.FromArgb(122, Color.Red));
            lstColors.Add(Color.FromArgb(122, Color.Chartreuse));
            lstColors.Add(Color.FromArgb(122, Color.Chocolate));
            lstColors.Add(Color.FromArgb(122, Color.Coral));
            lstColors.Add(Color.FromArgb(122, Color.CornflowerBlue));
            lstColors.Add(Color.FromArgb(122, Color.Cornsilk));
            lstColors.Add(Color.FromArgb(122, Color.Crimson));
            lstColors.Add(Color.FromArgb(122, Color.Cyan));
            lstColors.Add(Color.FromArgb(122, Color.DarkBlue));
            lstColors.Add(Color.FromArgb(122, Color.DarkCyan));
            lstColors.Add(Color.FromArgb(122, Color.Blue));
            lstColors.Add(Color.FromArgb(122, Color.Brown));
            lstColors.Add(Color.FromArgb(122, Color.Orange));
            lstColors.Add(Color.FromArgb(122, Color.Green));
            lstColors.Add(Color.FromArgb(122, Color.Aqua));
            lstColors.Add(Color.FromArgb(122, Color.Olive));
            lstColors.Add(Color.FromArgb(122, Color.PaleGreen));
            lstColors.Add(Color.FromArgb(122, Color.Plum));
            lstColors.Add(Color.FromArgb(122, Color.RosyBrown));
            lstColors.Add(Color.FromArgb(122, Color.Salmon));

            Color[] Colors = lstColors.ToArray();

            for (int i = 0; i < dtDirInfo.Rows.Count; i++)
            {
                Values[i] = Convert.ToDecimal(dtDirInfo.Rows[i][2]);
                Displacements[i] = 0.05F;
                Texts[i] = "";
                //Texts[i] = dtDirInfo.Rows[i][0].ToString() + "(" + dtDirInfo.Rows[i][1].ToString() + ")";
                ToolTips[i] = dtDirInfo.Rows[i][0].ToString() + "(" + dtDirInfo.Rows[i][1].ToString() + ")";
                //ToolTips[i] = dtDirInfo.Rows[i][1].ToString();
            }

            SetValues(Values);
            SetPieDisplacements(Displacements);
            SetColors(Colors);
            SetTexts(Texts);
            SetToolTips(ToolTips);

        }

        private void SetValues(decimal[] Values)
        {
            PieChartControlDirectory.Values = Values;
        }

        private void SetPieDisplacements(float[] Displacements)
        {
            PieChartControlDirectory.SliceRelativeDisplacements = Displacements;
        }

        private void SetColors(Color[] Colors)
        {
            PieChartControlDirectory.Colors = Colors;
        }

        private void SetTexts(string[] Texts)
        {
            PieChartControlDirectory.Texts = Texts;
        }

        private void SetToolTips(string[] ToolTips)
        {
            PieChartControlDirectory.ToolTips = ToolTips;
        }

        private void tvDirectory_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
            {
                ExecuteDirectorySize();
            }
        }

        private void pieChartControl1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            try
            {
                int index = PieChartControlDirectory.FindPieSliceUnderPoint(new PointF(e.X, e.Y));
                if (index != -1)
                {
                    Process(PieChartControlDirectory.ToolTips[index]);
                }
            }
            catch
            {
            }
        }

        private void Process(string p)
        {
            string name = p.Remove(p.LastIndexOf('('));
            string currDirectory = tvDirectory.SelectedNode.FullPath.Remove(0, MY_COMPUTER.Length + 1);
            currDirectory += tvDirectory.PathSeparator + name;

            if (Directory.Exists(currDirectory))
            {
                foreach (TreeNode tv in tvDirectory.SelectedNode.Nodes)
                {
                    if (tv.Text == name)
                    {
                        tvDirectory.SelectedNode = tv;
                        ExecuteDirectorySize();
                        break;
                    }
                }

            }

            //throw new NotImplementedException();
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            tvDirectory.Focus();
        }


        private static string convertSize(double dirSize)
        {
            string SetBytes = "";

            if (dirSize >= 1073741824)
            {
                SetBytes = String.Format("{0:N2} GB", ((dirSize / 1024) / 1024) / 1024);
            }
            else if (dirSize >= 1048576)
            {
                SetBytes = String.Format("{0:N2} MB", (dirSize / 1024) / 1024);
            }
            else if (dirSize >= 1024)
            {
                SetBytes = String.Format("{0:N2} KB", (dirSize / 1024));
            }
            else if (dirSize < 1024)
            {
                SetBytes = dirSize.ToString() + " Bytes";
            }
            return SetBytes;
        }

        FilterOptions filterOptions = new FilterOptions();
        private void toolStripButtonFilterOptions_Click(object sender, EventArgs e)
        {
            filterOptions.ShowDialog(this);
            this.Activate();

            if (filterOptions.DialogResult == DialogResult.OK && filterOptions.RedoDirectoryAnalyze)
                ExecuteDirectorySize();
        }

        private void toolStripButtonReload_Click(object sender, EventArgs e)
        {
            ExecuteDirectorySize();
        }

        private int contextMenuRowIndex = -1;
        private void dataGridViewDirectory_RowContextMenuStripNeeded(object sender, DataGridViewRowContextMenuStripNeededEventArgs e)
        {
            contextMenuRowIndex = e.RowIndex;
            e.ContextMenuStrip = contextMenuStripGrid;
        }

        private void openDirectoryToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (LastScanDirectory != MY_COMPUTER)
            {
                string currentDirectory = LastScanDirectory;
                if (!LastScanDirectory.EndsWith(Path.DirectorySeparatorChar.ToString()))
                    currentDirectory += Path.DirectorySeparatorChar;

                if (dataGridViewDirectory.Columns.Contains("Folder Name"))
                    currentDirectory += dataGridViewDirectory.Rows[contextMenuRowIndex].Cells["Folder Name"].Value;
                else
                    currentDirectory = dataGridViewDirectory.Rows[contextMenuRowIndex].Cells["Drive Name"].Value.ToString(); 
                System.Diagnostics.Process.Start(currentDirectory);
            }
            
        }

        private void openParentDirectoryToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (LastScanDirectory != MY_COMPUTER)
            {
                System.Diagnostics.Process.Start(LastScanDirectory);
            }
        }

        private void toolStripButtonToExcel_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveDialog = new SaveFileDialog();
            saveDialog.Filter = "Excel files | *.xls";

            DialogResult saveDialogResult = saveDialog.ShowDialog();

            if (saveDialogResult != DialogResult.Cancel)
            {
                string filename = saveDialog.FileName;
                Workbook book = new Workbook();
                book.ExcelWorkbook.ActiveSheetIndex = 1;
                // Some optional properties of the Document
                book.Properties.Author = "Disk Analyzer";
                book.Properties.Title = "Disk Analyzer Report";
                book.Properties.Created = DateTime.Now;

                // Add some styles to the Workbook
                WorksheetStyle style = book.Styles.Add("HeaderStyle");
                style.Font.FontName = "Tahoma";
                style.Font.Size = 11;
                style.Font.Bold = true;
                style.Alignment.Horizontal = StyleHorizontalAlignment.Center;
                style.Font.Color = "White";
                style.Interior.Color = "Blue";
                style.Interior.Pattern = StyleInteriorPattern.DiagCross;

                // Create the Default Style to use for everyone
                style = book.Styles.Add("Default");
                style.Font.FontName = "Tahoma";
                style.Font.Size = 10;

                // Add a Worksheet with some data
                Worksheet sheet = book.Worksheets.Add("Size Analysis");
                WorksheetRow row = sheet.Table.Rows.Add();

                // we can optionally set some column settings
                for (int i = 0; i < dataGridViewDirectory.Columns.Count; i++)
                {
                    sheet.Table.Columns.Add(new WorksheetColumn(150));

                    row.Cells.Add(new WorksheetCell(dataGridViewDirectory.Columns[i].Name, "HeaderStyle"));
                }

                //row = sheet.Table.Rows.Add();
                // Skip one row, and add some text
                row.Index = 2;

                // Generate 30 rows
                for (int i = 0; i < dataGridViewDirectory.Rows.Count; i++)
                {
                    row = sheet.Table.Rows.Add();
                    for (int j = 0; j < dataGridViewDirectory.Columns.Count; j++)
                    {
                        row.Cells.Add(dataGridViewDirectory.Rows[i].Cells[j].Value.ToString());
                    }
                }

                // Add a Worksheet with some data
                sheet = book.Worksheets.Add("File Type Analysis");
                row = sheet.Table.Rows.Add();
                // we can optionally set some column settings
                for (int i = 0; i < treeFileTypes.Columns.Count; i++)
                {
                    sheet.Table.Columns.Add(new WorksheetColumn(150));

                    row.Cells.Add(new WorksheetCell(treeFileTypes.Columns[i].Name.Replace("Column", ""), "HeaderStyle"));
                }

                row.Index = 3;

                // Generate 30 rows
                for (int i = 0; i < treeFileTypes.Rows.Count; i++)
                {
                    row = sheet.Table.Rows.Add();
                    for (int j = 0; j < treeFileTypes.Columns.Count; j++)
                    {
                        row.Cells.Add(treeFileTypes.Rows[i].Cells[j].Value.ToString());
                    }
                }
                // Save the file and open it
                book.Save(filename);

                if (filterOptions.OpenExportedFile)
                    System.Diagnostics.Process.Start(filename);
            }
        }

    }
}

⌨️ 快捷键说明

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