国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

C#打造自己的文件瀏覽器

2019-11-18 19:47:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  C#的功能十分強(qiáng)大,用它可以輕松地做出屬于自己的文件瀏覽器。下面簡(jiǎn)單地介紹一下文件瀏覽器的大致實(shí)現(xiàn)過(guò)程。其中涉及的有關(guān)這些控件的具體用法可參見(jiàn)C#的聯(lián)機(jī)幫助。

  你需要用到幾個(gè)控件:

   TreeView(用于顯示顯示目錄樹(shù));

   ListView(用于顯示文件和目錄列表);

   Splitter(用于允許用戶調(diào)整TreeView和ListView的大小);

   其它的如:MainMenu,ToolBar,StatusBar,ImageList等等就看你的實(shí)際需要了。

  首先,新建一個(gè)C#項(xiàng)目(Windows應(yīng)用程序),命名為MyFileView,將窗口命名為mainForm,調(diào)整主窗口大小(Size)。添加MainMenu,ToolBar,StatusBar,ImageList等控件。

  然后,添加TreeView控件,命名為treeView,Dock屬性設(shè)為L(zhǎng)eft,再添加Splitter控件,同樣將Dock屬性設(shè)為L(zhǎng)eft。最后添加ListView控件,命名為listView,Dock屬性設(shè)為Fill。

  界面做好了,那么怎樣才能在這個(gè)界面里顯示文件夾和文件呢?這需要我們添加代碼來(lái)實(shí)現(xiàn)。

  首先引用以下名字空間:

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using System.IO ;

using System .Runtime .InteropServices ;


在mainForm_Load事件中添加以下代碼,用于在treeView控件中顯示目錄樹(shù):

PRivate void mainForm_Load(object sender, System.EventArgs e)

//獲取邏輯驅(qū)動(dòng)器

string[] LogicDrives=System.IO .Directory .GetLogicalDrives();

TreeNode[] cRoot =new TreeNode[LogicDrives.Length];

for (int i=0;i< LogicDrives.Length ;i++)

{

 TreeNode drivesNode=new TreeNode(LogicDrives[i]);

 treeView.Nodes .Add (drivesNode);

 if (LogicDrives[i]!="A://" && LogicDrives[i]!="B://" )

  getSubNode(drivesNode,true);

}

}
 

  其中,getSubNode為一方法,用于獲取子目錄,以創(chuàng)建目錄樹(shù)節(jié)點(diǎn),參數(shù):PathName為獲取的子目錄在此節(jié)點(diǎn)下創(chuàng)建子節(jié)點(diǎn),參數(shù)isEnd:結(jié)束標(biāo)志,true則結(jié)束。

private void getSubNode(TreeNode PathName,bool isEnd)

{

 if(!isEnd)

  return; //exit this

  TreeNode curNode;

  DirectoryInfo[] subDir;

  DirectoryInfo curDir=new DirectoryInfo (PathName.FullPath);

  try

  {

   subDir=curDir.GetDirectories();

  }

  catch{}

   foreach(DirectoryInfo d in subDir)

   {

    curNode=new TreeNode(d.Name);

    PathName.Nodes .Add (curNode);

    getSubNode(curNode,false);

   }

}
 

  當(dāng)鼠標(biāo)單擊目錄節(jié)點(diǎn)左邊的+號(hào)時(shí),節(jié)點(diǎn)將展開(kāi),此時(shí),應(yīng)在AfterExpand事件中加入以下代碼,以獲取此目錄下的子目錄節(jié)點(diǎn):

private void treeView_AfterExpand(object sender, System.Windows.Forms.TreeViewEventArgs e)

{

 try

 {

  foreach(TreeNode tn in e.Node .Nodes )

  {

   if (!tn.IsExpanded)

    getSubNode(tn,true);

   }

  }

 catch{;}

}
 

  當(dāng)鼠標(biāo)單擊選中目錄節(jié)點(diǎn)時(shí),右邊的listView控件應(yīng)顯示此目錄下的文件和目錄,代碼如下:

private void treeView_AfterSelect(object sender,System.Windows.Forms.TreeViewEventArgs e)

{

 listView.Items.Clear();

 DirectoryInfo selDir=new DirectoryInfo(e.Node.FullPath );

 DirectoryInfo[] listDir;

 FileInfo[] listFile;

 try

 {

  listDir=selDir.GetDirectories();

  listFile=selDir.GetFiles();

 }

 catch{}

 foreach (DirectoryInfo d in listDir)

  listView.Items .Add (d.Name,6);

 foreach (FileInfo d in listFile)

  listView.Items .Add (d.Name);

}
 

  至此,一個(gè)簡(jiǎn)單的文件瀏覽器就做成了,當(dāng)然,它還很初級(jí),甚至不能用它打開(kāi)一個(gè)文件,加另外,它也不能顯示文件和目錄的圖標(biāo),沒(méi)有進(jìn)行錯(cuò)誤處理,沒(méi)有進(jìn)行安全控制……它能給你的只是一個(gè)思路。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 崇左市| 石狮市| 汾西县| 凭祥市| 和硕县| 青冈县| 梁河县| 革吉县| 尖扎县| 石楼县| 万荣县| 闸北区| 沙湾县| 澳门| 昌江| 皮山县| 新津县| 双桥区| 肥城市| 丰台区| 防城港市| 花莲县| 安阳县| 永德县| 布拖县| 云和县| 五华县| 黄大仙区| 汕尾市| 西峡县| 阳东县| 黄平县| 新营市| 吴堡县| 礼泉县| 蓬安县| 巨鹿县| 广元市| 台东县| 温州市| 毕节市|