当前位置: 首页 > news >正文

网站运营解决方案免费家具网站模板

网站运营解决方案,免费家具网站模板,陕西住房建设厅考试官方网站,网站设计的逻辑结构C#用TreeView访问文件或文件夹#xff0c;通过递归#xff0c;展开所有文件夹#xff08;类似资源管理器的树形窗体#xff09; 首先#xff0c;算法是用递归算法#xff0c;不断的递归文件。以此来遍历整个电脑的磁盘内容#xff0c;过程也很简单。这种算法的时间复杂度…C#用TreeView访问文件或文件夹通过递归展开所有文件夹类似资源管理器的树形窗体 首先算法是用递归算法不断的递归文件。以此来遍历整个电脑的磁盘内容过程也很简单。这种算法的时间复杂度太大。以至于窗体打开较慢效率不高。 View Code using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;namespace FolderBrowserApp {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){try{//获取所有驱动盘目录string[] s Directory.GetLogicalDrives();//通过遍历去添加所有父节点foreach (string m in s){//父节点TreeNode node new TreeNode(m);//给treeview添加节点this.treeView1.Nodes.Add(node);//调用方法递归出磁盘的所有文件并将父节点和路径传入expendtree(m, node);}}catch { }}private void expendtree(string path, TreeNode tn){try{//获取父节点目录的子目录string[] s1 Directory.GetDirectories(path);//子节点TreeNode subnode new TreeNode();//通过遍历给传进来的父节点添加子节点foreach (string j in s1){subnode new TreeNode(j);tn.Nodes.Add(subnode);//对文件夹不断递归得到所有文件expendtree(j, subnode);}}catch { }}} } 分析以上代码造成打开慢的原因是一开始就加载所有数据到TreeView控件中来为了提高效率可以等选用选择了相关的驱动器对象再来加载相关的文件夹这样高效了很多。所以经过修改再添加多一个ListBox把文件也显示出来。 View Code using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;namespace WindowsFormsApplication2 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//显示各逻辑磁盘string[] drivers Directory.GetLogicalDrives();foreach (string driver in drivers){TreeNode node new TreeNode(driver);treeView1.Nodes.Add(node);//不再预先遍历文件夹// expendtree(driver, node);}}private void expendtree(string path, TreeNode tn){try{//遍历指定的文件夹目录string[] dirs Directory.GetDirectories(path);foreach (string dir in dirs){TreeNode subnode new TreeNode(dir);tn.Nodes.Add(subnode);//不再遍历子文件夹// expendtree(dir, subnode);}}catch { }}private void treeView1_AfterSelect(object sender, TreeViewEventArgs e){//选择节点的信息TreeNode selnode treeView1.SelectedNode;string selname treeView1.SelectedNode.Text;//开始遍历选定的节点并展开它expendtree(selname, selnode);selnode.Expand();//加载选定节点文件夹的相关文件string[] files Directory.GetFiles(selname);listBox1.Items.Clear();foreach (string file in files){listBox1.Items.Add(file);}}} } 分析以上代码看到文件夹显示的都是完整路径这不是我们想要的我们只需要显示文件夹名就可以了所以需要再次修改。  using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO; namespace WindowsFormsApplication2{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }         private void Form1_Load(object sender, EventArgs e)        {            //显示各逻辑磁盘            string[] drivers Directory.GetLogicalDrives();            foreach (string driver in drivers)            {                TreeNode node new TreeNode(driver);                treeView1.Nodes.Add(node);            }         }         private void expendtree(string path, TreeNode tn)        {            try            {                //遍历指定的文件夹目录                string[] dirs Directory.GetDirectories(path);                foreach (string dir in dirs)                {                      //截取文件夹名,作节点名,不需要显示完整路径                  string  mdir dir.Substring(dir.LastIndexOf(\\) 1, dir.Length - dir.LastIndexOf(\\) - 1);                    TreeNode subnode new TreeNode(mdir);                    tn.Nodes.Add(subnode);                }            }            catch { }        }         private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)        {            //选择节点的信息            TreeNode selnode treeView1.SelectedNode;          //  string selname treeView1.SelectedNode.Text;                        //修改国节点的完整路径            string selname selnode.FullPath;             //开始遍历选定的节点并展开它            expendtree(selname, selnode);            selnode.Expand();             //加载选定节点文件夹的相关文件            string[] files Directory.GetFiles(selname);            listBox1.Items.Clear();            foreach (string file in files)            {                listBox1.Items.Add(file);            }        }    }}      再次更改呵呵做成图片浏览工具添加文件到列表框时过滤图片文件 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;namespace WindowsFormsApplication2 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//显示各逻辑磁盘string[] drivers Directory.GetLogicalDrives();foreach (string driver in drivers){TreeNode node new TreeNode(driver);treeView1.Nodes.Add(node);}}private void expendtree(string path, TreeNode tn){try{//遍历指定的文件夹目录string[] dirs Directory.GetDirectories(path);foreach (string dir in dirs){ //截取文件夹名,作节点名,不需要显示完整路径string mdir dir.Substring(dir.LastIndexOf(\\) 1, dir.Length - dir.LastIndexOf(\\) - 1);TreeNode subnode new TreeNode(mdir);tn.Nodes.Add(subnode);}}catch { }}private void treeView1_AfterSelect(object sender, TreeViewEventArgs e){//选择节点的信息TreeNode selnode treeView1.SelectedNode;// string selname treeView1.SelectedNode.Text;//修改国节点的完整路径string selname selnode.FullPath;//开始遍历选定的节点并展开它expendtree(selname, selnode);selnode.Expand();//加载选定节点文件夹的相关文件string[] files Directory.GetFiles(selname);listBox1.Items.Clear();foreach (string file in files){ //在加载文件时,按扩展名来过滤文件,只显示jpg和bmp文件string mfilefile.Substring(file.Length-3,3);switch (mfile){ case jpg:case bmp:listBox1.Items.Add(file);break;default:break;}}}private void listBox1_Click(object sender, EventArgs e){//加载图片if (listBox1.SelectedIndex 0){string file listBox1.SelectedItem.ToString();try{pictureBox1.Image Image.FromFile(file);}catch{ }}}} }添加父节点及节点的状态图标先给工程中添加ImageList控件加载四个状态图标 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;namespace WindowsFormsApplication2 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//显示各逻辑磁盘string[] drivers Directory.GetLogicalDrives();foreach (string driver in drivers){TreeNode node new TreeNode(driver);//逻辑磁盘图标两个状态不变node.ImageIndex 1;node.SelectedImageIndex 1;treeView1.Nodes.Add(node);}}private void expendtree(string path, TreeNode tn){try{//遍历指定的文件夹目录string[] dirs Directory.GetDirectories(path);foreach (string dir in dirs){ //截取文件夹名,作节点名,不需要显示完整路径string mdir dir.Substring(dir.LastIndexOf(\\) 1, dir.Length - dir.LastIndexOf(\\) - 1);TreeNode subnode new TreeNode(mdir);//文件夹图标两个状态有变化subnode.ImageIndex 2;subnode.SelectedImageIndex 3;tn.Nodes.Add(subnode);}}catch { }}private void treeView1_AfterSelect(object sender, TreeViewEventArgs e){//选择节点的信息TreeNode selnode treeView1.SelectedNode;// string selname treeView1.SelectedNode.Text;//修改国节点的完整路径string selname selnode.FullPath;//开始遍历选定的节点并展开它expendtree(selname, selnode);selnode.Expand();try{//加载选定节点文件夹的相关文件string[] files Directory.GetFiles(selname);listBox1.Items.Clear();foreach (string file in files){//在加载文件时,按扩展名来过滤文件,只显示jpg和bmp文件string mfile file.Substring(file.Length - 3, 3);switch (mfile){case jpg:case bmp:listBox1.Items.Add(file);break;default:break;}}}catch { }}private void listBox1_Click(object sender, EventArgs e){//加载图片if (listBox1.SelectedIndex 0){string file listBox1.SelectedItem.ToString();try{pictureBox1.Image Image.FromFile(file);}catch{ }}}} }
http://www.sadfv.cn/news/308645/

相关文章:

  • 门户网站整改报告土木英才网招聘信息
  • wordpress是哪家公司的建站程序敲代码做网站多少钱
  • 怎么在百度建设网站南阳网站推广公司
  • 网站策划就业前景河南移动官网网站建设
  • 铺面怎样做放上网站软件下载网站如何履行安全管理义务确保提供的软件
  • 网站服务器做哪些安全措施网站建设公司厦门
  • 做网站哪家公司比较好而且不贵36kr wordpress
  • 直播型网站开发东营网站建设策划内容
  • 大冶专业建站公司wordpress比特币插件
  • 长沙做网站优化长沙专门做网站公司有哪些
  • 网站页尾版权国外做科研的网站
  • 松北区建设局网站网络网站建设价格
  • 网站内容更新用什么天元建设集团有限公司济南第八建筑工程分公司
  • 同一个域名在一个服务器做两件网站百度一下 你就知道首页
  • 做期货在哪个网站查资料石家庄房产网
  • 学校网站设计论文建设网站 软件推荐
  • 上海域名网站吗泉州seo用户体验
  • 公司自己做网站欧亚专线单号查询
  • 南京个人网站建设如何上传自己的做的网站
  • 网站开发公司深圳哪做网站好
  • 广州网站建设及推广wordpress电源模板
  • 博物馆网站微信公众号建设方案做斗图网站
  • 外贸企业网站制作公司wordpress知言破解
  • 婚介做网站的好处软文代发价格
  • 网站管理员权限设置权限设置搜索引擎营销的案例有哪些
  • 做网站的意义大不大哈尔滨站建筑
  • 临沂做企业网站的公司网站二维码怎么做的
  • 有哪些网站做二手房好的外贸网络营销策划方案制定
  • 北京哪里有专门做网站的地方网站设计风格方案
  • 宁波企业建站系统网站建设雨点