最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)獲取系統(tǒng)目錄并以Tree樹叉顯示的方法

 更新時間:2014年07月17日 10:54:57   投稿:shichen2014  
這篇文章主要介紹了C#實(shí)現(xiàn)獲取系統(tǒng)目錄并以Tree樹叉顯示的方法,可以加深讀者對于C#下數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)方法的認(rèn)識,需要的朋友可以參考下

本文講述C#獲取Windows系統(tǒng)目錄,如何目錄遍歷以及將信息捆綁在TreeView中顯示出來的實(shí)現(xiàn)方法,具體實(shí)現(xiàn)代碼如下:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO; 
namespace 獲取系統(tǒng)目錄
{
 public class Form1 : System.Windows.Forms.Form
 {
 private System.Windows.Forms.TreeView treeView1;
 private System.ComponentModel.IContainer components;
 private System.Windows.Forms.Button button2;
 private System.Windows.Forms.Label label2;
 private System.Windows.Forms.Button button1;
 private System.Windows.Forms.TextBox textBox1;
 private System.Windows.Forms.Label label1; 
 public Form1()
 {
  InitializeComponent();
  FillTree(treeView1, true); // 顯示所有文件夾以及文件
 }
 protected override void Dispose( bool disposing )
 {
  if( disposing )
  {
  if (components != null) 
  {
   components.Dispose();
  }
  }
  base.Dispose( disposing );
 }
 #region Windows 窗體設(shè)計(jì)器生成的代碼
 private void InitializeComponent()
 {
  this.textBox1 = new System.Windows.Forms.TextBox();
  this.label2 = new System.Windows.Forms.Label();
  this.label1 = new System.Windows.Forms.Label();
  this.treeView1 = new System.Windows.Forms.TreeView();
  this.button1 = new System.Windows.Forms.Button();
  this.button2 = new System.Windows.Forms.Button();
  this.SuspendLayout();
  this.textBox1.Location = new System.Drawing.Point(280, 56);
  this.textBox1.Multiline = true;
  this.textBox1.Name = "textBox1";
  this.textBox1.Size = new System.Drawing.Size(208, 192);
  this.textBox1.TabIndex = 3;
  this.textBox1.Text = "";
  this.label2.AutoSize = true;
  this.label2.Location = new System.Drawing.Point(280, 24);
  this.label2.Name = "label2";
  this.label2.Size = new System.Drawing.Size(116, 17);
  this.label2.TabIndex = 4;
  this.label2.Text = "文件夾或文件信息:";
  this.label1.AutoSize = true;
  this.label1.Location = new System.Drawing.Point(16, 24);
  this.label1.Name = "label1";
  this.label1.Size = new System.Drawing.Size(153, 17);
  this.label1.TabIndex = 5;
  this.label1.Text = "請選擇一個文件夾或文件:";
  this.treeView1.ImageIndex = -1;
  this.treeView1.Location = new System.Drawing.Point(16, 56);
  this.treeView1.Name = "treeView1";
  this.treeView1.SelectedImageIndex = -1;
  this.treeView1.Size = new System.Drawing.Size(184, 192);
  this.treeView1.TabIndex = 6;
  this.button1.Location = new System.Drawing.Point(216, 104);
  this.button1.Name = "button1";
  this.button1.Size = new System.Drawing.Size(48, 32);
  this.button1.TabIndex = 7;
  this.button1.Text = "顯示";
  this.button1.Click += new System.EventHandler(this.button1_Click);
  this.button2.Location = new System.Drawing.Point(216, 168);
  this.button2.Name = "button2";
  this.button2.Size = new System.Drawing.Size(48, 32);
  this.button2.TabIndex = 8;
  this.button2.Text = "清空";
  this.button2.Click += new System.EventHandler(this.button2_Click);
  this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
  this.ClientSize = new System.Drawing.Size(504, 277);
  this.Controls.Add(this.button2);
  this.Controls.Add(this.button1);
  this.Controls.Add(this.treeView1);
  this.Controls.Add(this.label1);
  this.Controls.Add(this.label2);
  this.Controls.Add(this.textBox1);
  this.Name = "Form1";
  this.Text = "Form1";
  this.ResumeLayout(false);
 }
 #endregion
 [STAThread]
 static void Main() 
 {
  Application.Run(new Form1());
 }
 // 填充目錄和文件到 TreeView 控件中
 // isSource 表示是否顯示文件
 private void FillTree(TreeView treeView,bool isSource)
 {
  treeView.Nodes.Clear(); // 清空
  // 獲取系統(tǒng)上的所有邏輯驅(qū)動器
  string[] strDrives = Environment.GetLogicalDrives();
  foreach(string rootDirectoryName in strDrives)
  {
  try
  {
   // 獲取驅(qū)動器頂級目錄列表
   DirectoryInfo dir = new DirectoryInfo(rootDirectoryName);
   
   // 如果獲得的目錄信息正確,則將它添加到 TreeView 控件中
   if (dir.Exists == true)
   {
   TreeNode newNode = new TreeNode(rootDirectoryName);
   treeView.Nodes.Add(newNode);
   if (isSource)
   {
    GetSubDirectoryNodes(newNode, newNode.Text, true);
   }
   else
   {
    GetSubDirectoryNodes(newNode, newNode.Text, false);
   }
   }
  }
  catch(Exception e)
  {
   MessageBox.Show(e.Message);
  }
  }
 }
 // 遍歷子目錄
 private void GetSubDirectoryNodes(TreeNode parentNode, string fullName, bool getFileNames)
 {
  DirectoryInfo dir = new DirectoryInfo(fullName);
  DirectoryInfo[] subDirs = dir.GetDirectories();
  // 為每一個子目錄添加一個子節(jié)點(diǎn)
  foreach(DirectoryInfo subDir in subDirs)
  {
  // 不顯示隱藏文件夾
  if((subDir.Attributes & FileAttributes.Hidden) != 0)
  {
   continue;
  }
  TreeNode subNode = new TreeNode(subDir.Name);
  parentNode.Nodes.Add(subNode);
  // 遞歸調(diào)用GetSubDirectoryNodes
  GetSubDirectoryNodes(subNode, subDir.FullName, getFileNames);
  }
  // 獲取目錄中的文件
  if(getFileNames)
  {
  FileInfo[] files = dir.GetFiles();
  foreach(FileInfo file in files)
  {
   TreeNode fileNode = new TreeNode(file.Name);
   parentNode.Nodes.Add(fileNode);
  }
  }
 }
 private void button1_Click(object sender, System.EventArgs e)
 {
  try
  {
  TreeNode selectedNode = treeView1.SelectedNode;  
  DirectoryInfo info = new DirectoryInfo(selectedNode.FullPath);
  string [] strArray = new string[4];
  strArray[0] = "完整路徑名 : "+ info.FullName;
  strArray[1] = "創(chuàng)建時間 : "+ info.CreationTime.ToString();
  strArray[2] = "上次訪問時間 : "+ info.LastAccessTime.ToString();
  strArray[3] = "上次寫入時間 : "+ info.LastWriteTime.ToString();
  textBox1.Lines = strArray;
  }
  catch(Exception exc)
  {
  MessageBox.Show(exc.Message);
  }
 }
 private void button2_Click(object sender, System.EventArgs e)
 {
  textBox1.Text = "";
 }
 }
}

相關(guān)文章

  • c# 如何更簡單的使用Polly

    c# 如何更簡單的使用Polly

    這篇文章主要介紹了c# 如何更簡單的使用Polly,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C# 設(shè)計(jì)模式系列教程-簡單工廠模式

    C# 設(shè)計(jì)模式系列教程-簡單工廠模式

    簡單工廠模式職責(zé)單一,實(shí)現(xiàn)簡單,且實(shí)現(xiàn)了客戶端代碼與具體實(shí)現(xiàn)的解耦。
    2016-06-06
  • c#中SqlHelper封裝SqlDataReader的方法

    c#中SqlHelper封裝SqlDataReader的方法

    這篇文章主要介紹了c#中SqlHelper封裝SqlDataReader的方法,涉及C#針對數(shù)據(jù)庫相關(guān)操作封裝與使用的技巧,需要的朋友可以參考下
    2015-05-05
  • C#中timer類的用法總結(jié)

    C#中timer類的用法總結(jié)

    System.Windows.Forms.Timer是應(yīng)用于WinForm中的,它是通過Windows消息機(jī)制實(shí)現(xiàn)的,類似于VB或Delphi中的Timer控件,內(nèi)部使用API SetTimer實(shí)現(xiàn)的。它的主要缺點(diǎn)是計(jì)時不精確,而且必須有消息循環(huán)
    2013-10-10
  • 讀取圖片像素的具體實(shí)例

    讀取圖片像素的具體實(shí)例

    C#讀取圖片像素的具體實(shí)例,需要的朋友可以參考一下
    2013-06-06
  • Unity3D實(shí)現(xiàn)人物轉(zhuǎn)向與移動

    Unity3D實(shí)現(xiàn)人物轉(zhuǎn)向與移動

    這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)人物轉(zhuǎn)向與移動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • C#自定義控件實(shí)現(xiàn)TextBox禁止粘貼的方法

    C#自定義控件實(shí)現(xiàn)TextBox禁止粘貼的方法

    這篇文章主要介紹了C#自定義控件實(shí)現(xiàn)TextBox禁止粘貼的方法,結(jié)合具體實(shí)例形式分析了C#自定義控件的創(chuàng)建、使用方法及TextBox禁止粘貼的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • c#使用linq技術(shù)創(chuàng)建xml文件的小例子

    c#使用linq技術(shù)創(chuàng)建xml文件的小例子

    c#使用linq技術(shù)創(chuàng)建xml文件的小例子,需要的朋友可以參考一下
    2013-03-03
  • 解析C#網(wǎng)絡(luò)編程中的Http請求

    解析C#網(wǎng)絡(luò)編程中的Http請求

    這篇文章主要介紹了C#網(wǎng)絡(luò)編程中的Http請求,不過這次也使我對C#網(wǎng)絡(luò)編程了解的更多,算是一次學(xué)習(xí)經(jīng)歷吧,文章結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • C#中分部類和分部方法的應(yīng)用

    C#中分部類和分部方法的應(yīng)用

    本篇文章介紹了,C#中分部類和分部方法的應(yīng)用。需要的朋友參考下
    2013-04-04

最新評論

东城区| 阜南县| 沛县| 柞水县| 黑龙江省| 南投县| 扎赉特旗| 新乡市| 海丰县| 富源县| 邢台县| 那坡县| 新余市| 于田县| 庐江县| 邢台市| 衢州市| 隆化县| 澄城县| 枣阳市| 宜良县| 敖汉旗| 武平县| 镇康县| 青冈县| 佳木斯市| 石渠县| 辛集市| 正定县| 浑源县| 班玛县| 祁连县| 铜川市| 西青区| 晋中市| 惠东县| 宁明县| 平乐县| 连州市| 长汀县| 大关县|