using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace readdir4
{
public partial class Form1 : Form
{
private const string DUMMY = "DUMMY";
private enum ItemType
{
Directory = 1,
File = 2
}
public Form1()
{
InitializeComponent();
}
private void Load_Form(object sender, EventArgs e)
{
LoadTreeView();
}
private void LoadTreeView()
{
string[] myDrives = Directory.GetLogicalDrives();
tvwRoot.Nodes.Clear();
foreach (string strDrive in myDrives)
{
TreeNode myTreeNode = new TreeNode();
myTreeNode.Text = strDrive;
myTreeNode.Nodes.Add(DUMMY);
tvwRoot.Nodes.Add(myTreeNode);
}
}
private void tvwRoot_AfterSelect(object sender, TreeViewEventArgs e)
{
try
{
switch ((ItemType)e.Node.Tag)
{
case ItemType.File:
FileInfo fi = new FileInfo(e.Node.FullPath);
lblLength.Text = fi.Length.ToString();
DisplayFSIProperties(fi);
break;
case ItemType.Directory:
lblLength.Text = String.Empty;
DirectoryInfo di = new DirectoryInfo(e.Node.FullPath);
break;
default:
ClearProperties();
break;
}
}
catch (Exception)
{
// MessageBox.Show(exp.Message, this.Text);
}
}
private void vwRoot_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{
try
{
e.Node.Nodes.Clear();
// 呼叫 AddFolders 程序來替節點加入目錄名稱。
AddFolders(e.Node);
// 呼叫 AddFiles 程序來替節點加入檔案名稱。
AddFiles(e.Node);
}
catch (IOException exp) // 通常發生於磁碟裝置尚未就緒時。
{
MessageBox.Show(exp.Message);
}
catch (Exception exp)
{
MessageBox.Show(exp.ToString(), this.Text);
}
}
private void AddFolders(TreeNode nod)
{
string strPath = nod.FullPath;
string[] myDirectories = Directory.GetDirectories(strPath);
foreach (string strDir in myDirectories)
{
TreeNode myTreeNode = new TreeNode();
myTreeNode.Text = Path.GetFileName(strDir);
myTreeNode.Tag = ItemType.Directory;
myTreeNode.Nodes.Add(DUMMY);
nod.Nodes.Add(myTreeNode);
}
}
// 此程序用來替節點加入檔案名稱。
public void AddFiles(TreeNode nod)
{
string strPath = nod.FullPath;
string[] myFiles = Directory.GetFiles(strPath);
foreach (string strFile in myFiles)
{
TreeNode myTreeNode = new TreeNode();
myTreeNode.Text = Path.GetFileName(strFile);
myTreeNode.Tag = ItemType.File;
nod.Nodes.Add(myTreeNode);
}
}
public void DisplayFSIProperties(FileSystemInfo fsi)
{
lblExtension.Text = fsi.Extension;
}
private void ClearProperties()
{
lblLength.Text = String.Empty;
}
private void btnCreateFile(object sender, EventArgs e)
{
string myTextFilePath = @"c:\test1.txt";
FileInfo fileInfo = new FileInfo(myTextFilePath);
StreamWriter sw = fileInfo.CreateText();
sw.Write( lblLength.Text + "\r\n");
sw.Flush();
}
}
}
各位前輩,我這個程式只能看檔案夾中的某個檔案,若我想要看所有的檔案該如何改