//*********************************************************//
主要属性:
Description:树视图控件上显示的说明文本,如上图中的”选择要进行计算的目录”;
RootFolder:获取或设置从其开始浏览的根文件夹,如上图中设置的我的电脑(默认为桌面);
SelectedPath:获取或设置用户选定的路径,如果设置了该属性,打开对话框时会定位到指定路径,默认为根文件夹,关闭对话框时根据该属性获取用户用户选定的路径;
ShowNewFolderButton:获取或设置是否显示新建对话框按钮;
主要方法:
ShowDialog:打开该对话框,返回值为DialogResult类型值,如果为DialogResult.OK,则可以由SelectedPath属性获取用户选定的路径;
dlgOpenFolder.Description = "选择要进行计算的目录";
dlgOpenFolder.RootFolder = Environment.SpecialFolder.MyComputer;
dlgOpenFolder.ShowNewFolderButton = true;
DialogResult result = dlgOpenFolder.ShowDialog(this);
if (result == DialogResult.OK)
{
txtDirPath.Text = dlgOpenFolder.SelectedPath;
}
//*********************************************************//
//*********************************************************//
主要属性:
CheckFileExists:该值指示如果用户指定不存在的文件名,对话框是否显示警告;
FileName(s):获取或设置一个包含在文件对话框中选定的文件名的字符串;
Filter:获取或设置对话框的文件类型列表;
FilterIndex:对话框的文件类型列表的索引(基于1的);
InitialDirectory:获取或设置文件对话框显示的初始目录;
Multiselect:该值指示对话框是否允许选择多个文件;
ShowReadOnly:该值指示对话框是否包含只读复选框;
Title:获取或设置文件对话框标题;
主要方法:
OpenFile:打开用户选定的具有只读权限的文件;
ShowDialog:打开该模式对话框;
//*********************************************************//
//*********************************************************//
主要属性:
大部分与打开文件对话框类似,此处略过,下面几个值得注意:
CreatePrompt:该值指示如果用户指定不存在的文件,是否提示用户允许创建该文件;
OverwritePrompt:该值指示如果用户指定的文件名已存在,对话框是否显示警告;
主要方法:
OpenFile:打开用户选定的具有读/写权限的文件;
ShowDialog:打开该模式对话框;
dlgSaveFile.Title = "打开目标文件";
dlgSaveFile.InitialDirectory = @"C:\Inetpub\";
dlgSaveFile.Filter = "文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*";
dlgSaveFile.FilterIndex = 2;
DialogResult dr = dlgSaveFile.ShowDialog();
if (dr == DialogResult.OK)
{
string fileName = dlgSaveFile.FileName;
}
//*********************************************************//
/// <summary>
/// 计算一个目录的大小
/// </summary>
/// <param name="di">指定目录</param>
/// <param name="includeSubDir">是否包含子目录</param>
/// <returns></returns>
private long CalculateDirSize(DirectoryInfo di, bool includeSubDir)
{
long totalSize = 0;
// 检查所有(直接)包含的文件
FileInfo[] files = di.GetFiles();
foreach (FileInfo file in files)
{
totalSize += file.Length;
}
// 检查所有子目录,如果includeSubDir参数为true
if (includeSubDir)
{
DirectoryInfo[] dirs = di.GetDirectories();
foreach (DirectoryInfo dir in dirs)
{
totalSize += CalculateDirSize(dir, includeSubDir);
}
}
return totalSize;
}
//*********************************************************//