专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
使用 WPF 获取你电脑上所有目录的详细信息:
2019-04-14 21:07
发布
生成海报
站内文章
/
模拟电子
13394
0
1039
一:界面设计代码如下:
图片信息:
二:界面展示:
三:后台代码编写:
#region 系统自动读出的信息 ///
/// 加载指定目录下的文件和目录 ///
///
///
private bool LoadDicTree(TreeViewItem tvi) { tvi.Items.Clear(); string dicStr = ((string)tvi.Tag).Trim(); if (Directory.Exists(dicStr)) //如果目录存在 { //获取目录信息 DirectoryInfo dicInfo = new DirectoryInfo(dicStr); //遍历目录中所有子目录 foreach (DirectoryInfo item in dicInfo.GetDirectories()) { //如果为系统目录,则不显示到界面 if ((item.Attributes & FileAttributes.System) == FileAttributes.System) continue; //创建TreeViewItem对象 TreeViewItem tviDic = new TreeViewItem(); //保存目录路径到Tag属性 tviDic.Tag = item.FullName; //设置节点显示文本 tviDic.Header = item.Name; //节点添加一个子节点"tmp"作为第一次展开标记 tviDic.Items.Add("tmp"); //添加节点Expanded事件处理函数 tvi.Expanded += new RoutedEventHandler(this.Dic_Expanded); //将节点添加到该父目录下 tvi.Items.Add(tviDic); } //遍历目录中所有子文件 foreach (FileInfo item in dicInfo.GetFiles()) { //创建TreeViewItem对象 TreeViewItem tviFile = new TreeViewItem(); //保存文件路径到Tag属性 tviFile.Tag = item.FullName; //设置节点显示文本 tviFile.Header = item.Name; //将节点添加到父目录下 tvi.Items.Add(tviFile); } return true; } else //目录不存在,不处理 { return false; } } ///
/// 加载系统中逻辑分区信息到目录树 ///
private void LoadLogicDrive() { foreach (string drv in Directory.GetLogicalDrives()) { TreeViewItem tvi = new TreeViewItem(); tvi.Tag = drv; tvi.Header = drv; tvi.Expanded += new RoutedEventHandler(this.Dic_Expanded); tvi.Items.Add("tmp"); this.tvDic.Items.Add(tvi); } } private void tvDic_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs
e) { //获取该节点的路径 string dicStr = (string)((TreeViewItem)this.tvDic.SelectedItem).Tag; if (Directory.Exists(dicStr)) //是一个目录 { //显示属性面板 this.tbProp.Visibility = Visibility.Visible; //获取目录信息 DirectoryInfo dicInfo = new DirectoryInfo(dicStr); string hint = ""; //生成目录属性文本 hint += string.Format("目录: {0}/n", "/t"+dicInfo.Name); hint += string.Format("路径 {0}/n", "/t" + dicInfo.FullName); hint += string.Format("根目录: {0}/n", "/t" + dicInfo.Root); hint += string.Format("父目录: {0}/n", "/t" + dicInfo.Parent); hint += string.Format("子目录数: {0}/n", "/t" + dicInfo. GetDirectories().Length); hint += string.Format("文件数: {0}/n", "/t" + dicInfo. GetFiles().Length); hint += string.Format("创建时间: {0}/n", "/t" + dicInfo.CreationTime); hint += string.Format("最近访问时间: {0}/n", "/t" + dicInfo.LastAccessTime); hint += string.Format("最近修改时间: {0}/n", "/t" + dicInfo.LastWriteTime); hint += string.Format("目录属性: {0}/n", "/t" + dicInfo.Attributes); this.tbProp.Text = hint; //显示目录属性到界面 } else if (File.Exists(dicStr)) //是一个文件 { //显示属性面板 this.tbProp.Visibility = Visibility.Visible; //获取文件属性 FileInfo fileInfo = new FileInfo(dicStr); string hint = ""; //生成文件属性文本 hint += string.Format("名称: {0}/n", "/t/t"+fileInfo.Name); hint += string.Format("完整路径: {0}/n","/t"+ fileInfo.FullName); hint += string.Format("扩展名: {0}/n", "/t"+fileInfo.Extension); hint += string.Format("父目录: {0}/n", "/t"+fileInfo.Directory); hint += string.Format("创建时间: {0}/n", "/t"+fileInfo.CreationTime); hint += string.Format("最近访问时间: {0}/n", "/t"+fileInfo.LastAccessTime); hint += string.Format("最近修改时间: {0}/n", "/t"+fileInfo.LastWriteTime); hint += string.Format("文件属性: {0}/n", "/t"+fileInfo.Attributes); this.tbProp.Text = hint; //显示文件属性到界面 } else { //不是文件也不是目录,隐藏属性面板 this.tbProp.Visibility = Visibility.Hidden; } } private void tvDic_MouseDoubleClick(object sender, MouseButtonEventArgs e) { } ///
/// 窗体加载事件处理函数 ///
///
///
private void Window_Loaded(object sender, RoutedEventArgs e) { this.tvDic.Items.Clear(); this.LoadLogicDrive(); MybInd(); } ///
/// 节点展开事件处理函数 ///
///
///
void Dic_Expanded(object sender, RoutedEventArgs e) { //获取展开的节点 TreeViewItem tvi = (TreeViewItem)e.Source; if (tvi.Tag == null) //如果节点不带有Tag数据,则返回 { return; } if ((tvi.Items.Count == 1) && //如果节点Tag数据是string类型且为"tmp" (tvi.Items[0] is string) && //则是第一次展开,则加载子 //目录等信息到树形结构中 ((string)tvi.Items[0] == "tmp")) { this.LoadDicTree(tvi); //加载目录的子目录和文件 } } private void btnCancel_Click(object sender, RoutedEventArgs e) { this.textBox1.Text = ""; this.textBox2.Text = ""; this.textBox3.Text = ""; this.textBox4.Text = ""; this.textBox5.Text = ""; this.textBox6.Text = ""; this.textBox7.Text = ""; this.textBox8.Text = ""; } private void btnResigter_Click(object sender, RoutedEventArgs e) { tbProp.Text += txtImageId.Text + "/t/t" + textBox1.Text+"/n"; tbProp.Text += txtChicun.Text + "/t/t" + textBox2.Text+"/n"; tbProp.Text += txtWhite.Text + "/t/t" + textBox3.Text+"/n"; tbProp.Text += txtHight.Text+ "/t/t" + textBox4.Text+"/n"; tbProp.Text += txtFbl.Text + "/t" + textBox5.Text+"/n"; tbProp.Text += txtcuizhi.Text + "/t" + textBox6.Text+"/n"; tbProp.Text += txtAhtor.Text + "/t/t" + textBox7.Text+"/n"; tbProp.Text += txtDate.Text + "/t" + textBox8.Text+"/n"; } #endregion
搞定.................
Ta的文章
更多
>>
使用 WPF 获取你电脑上所有目录的详细信息:
0 个评论
BIOS到Linux Boot的原理
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮