📄 disksize.cs
字号:
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 + -