<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FFile_Stream%2FDirectory</id>
		<title>Csharp/C Sharp/File Stream/Directory - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FFile_Stream%2FDirectory"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/Directory&amp;action=history"/>
		<updated>2026-04-30T03:43:22Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/Directory&amp;diff=1330&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/Directory&amp;diff=1330&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/Directory&amp;diff=1331&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/Directory&amp;diff=1331&amp;oldid=prev"/>
				<updated>2010-05-26T11:45:42Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Calculate Directory Size==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        DirectoryInfo dir = new DirectoryInfo(&amp;quot;c:\\&amp;quot;);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Total size: &amp;quot; + CalculateDirectorySize(dir, true).ToString() + &amp;quot; bytes.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    static long CalculateDirectorySize(DirectoryInfo directory, bool includeSubdirectories) {&lt;br /&gt;
        long totalSize = 0;&lt;br /&gt;
        FileInfo[] files = directory.GetFiles();&lt;br /&gt;
        foreach (FileInfo file in files) {&lt;br /&gt;
            totalSize += file.Length;&lt;br /&gt;
        }&lt;br /&gt;
        if (includeSubdirectories) {&lt;br /&gt;
            DirectoryInfo[] dirs = directory.GetDirectories();&lt;br /&gt;
            foreach (DirectoryInfo dir in dirs) {&lt;br /&gt;
                totalSize += CalculateDirectorySize(dir, true);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return totalSize;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes the current working directory and then lists the files in the directory==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
C# Programming Tips &amp;amp; Techniques&lt;br /&gt;
by Charles Wright, Kris Jamsa&lt;br /&gt;
Publisher: Osborne/McGraw-Hill (December 28, 2001)&lt;br /&gt;
ISBN: 0072193794&lt;br /&gt;
*/&lt;br /&gt;
//  ShowDir.cs -- Changes the current working directory and then lists&lt;br /&gt;
//                the files in the directory.&lt;br /&gt;
//&lt;br /&gt;
//                Compile this program with the following command line:&lt;br /&gt;
//                    C:&amp;gt;csc ShowDir.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
namespace nsStreams&lt;br /&gt;
{&lt;br /&gt;
    public class ShowDir&lt;br /&gt;
    {&lt;br /&gt;
        static public void Main (string [] args)&lt;br /&gt;
        {&lt;br /&gt;
            if (args.Length &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
// Build the directory name from the arguments (a directory name may&lt;br /&gt;
// contain spaces).&lt;br /&gt;
                string DirName = &amp;quot;&amp;quot;;&lt;br /&gt;
                foreach (string str in args)&lt;br /&gt;
                {&lt;br /&gt;
                    DirName += str;&lt;br /&gt;
                    DirName += &amp;quot; &amp;quot;;&lt;br /&gt;
                }&lt;br /&gt;
// Strip any leading or trailing spaces from the directory name&lt;br /&gt;
                DirName = DirName.Trim ();&lt;br /&gt;
// Check whether the directory exists&lt;br /&gt;
//                if (!Directory.Exists(DirName))&lt;br /&gt;
//                {&lt;br /&gt;
//                    Console.WriteLine (&amp;quot;No such directory: &amp;quot; + DirName);&lt;br /&gt;
//                    return;&lt;br /&gt;
//                }&lt;br /&gt;
// Set the current working directory&lt;br /&gt;
                try&lt;br /&gt;
                {&lt;br /&gt;
                    Directory.SetCurrentDirectory (DirName);&lt;br /&gt;
                }&lt;br /&gt;
                catch (UnauthorizedAccessException)&lt;br /&gt;
                {&lt;br /&gt;
                    Console.WriteLine (&amp;quot;Not authorized to access &amp;quot; + DirName);&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
                catch (FileNotFoundException)&lt;br /&gt;
                {&lt;br /&gt;
                    Console.WriteLine (&amp;quot;No such directory: &amp;quot; + DirName);&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
// List the files in the selected directory&lt;br /&gt;
            string [] files = Directory.GetFiles (&amp;quot;.&amp;quot;);&lt;br /&gt;
            foreach (string str in files)&lt;br /&gt;
            {&lt;br /&gt;
                int index = str.LastIndexOf (&amp;quot;\\&amp;quot;);&lt;br /&gt;
                Console.WriteLine (str.Substring (index + 1));&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Check the Existance of a Directory==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        foreach (string arg in args) {&lt;br /&gt;
            Console.Write(arg);&lt;br /&gt;
            if (Directory.Exists(arg)) {&lt;br /&gt;
                Console.WriteLine(&amp;quot; is a  directory&amp;quot;);&lt;br /&gt;
            } else if (File.Exists(arg)) {&lt;br /&gt;
                Console.WriteLine(&amp;quot; is a  file&amp;quot;);&lt;br /&gt;
            } else {&lt;br /&gt;
                Console.WriteLine(&amp;quot; does not exist&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Copy Directory==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        DirectoryInfo sourceDir = new DirectoryInfo(&amp;quot;c:\\source&amp;quot;);&lt;br /&gt;
        DirectoryInfo destinationDir = new DirectoryInfo(&amp;quot;c:\\target&amp;quot;);&lt;br /&gt;
        CopyDirectory(sourceDir, destinationDir);&lt;br /&gt;
    }&lt;br /&gt;
    static void CopyDirectory(DirectoryInfo source, DirectoryInfo destination) {&lt;br /&gt;
        if (!destination.Exists) {&lt;br /&gt;
            destination.Create();&lt;br /&gt;
        }&lt;br /&gt;
        // Copy all files.&lt;br /&gt;
        FileInfo[] files = source.GetFiles();&lt;br /&gt;
        foreach (FileInfo file in files) {&lt;br /&gt;
            file.CopyTo(Path.rubine(destination.FullName,&lt;br /&gt;
               file.Name));&lt;br /&gt;
        }&lt;br /&gt;
        // Process subdirectories.&lt;br /&gt;
        DirectoryInfo[] dirs = source.GetDirectories();&lt;br /&gt;
        foreach (DirectoryInfo dir in dirs) {&lt;br /&gt;
            string destinationDir = Path.rubine(destination.FullName, dir.Name);&lt;br /&gt;
            CopyDirectory(dir, new DirectoryInfo(destinationDir));&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Directory Counter==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
public class DirectoryCounter {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        DirectoryInfo myDir = new DirectoryInfo(@&amp;quot;c:\Program Files&amp;quot;);&lt;br /&gt;
        int total = CountDirectories(myDir);&lt;br /&gt;
        Console.WriteLine(total);&lt;br /&gt;
    }&lt;br /&gt;
    public static int CountDirectories(DirectoryInfo dir) {&lt;br /&gt;
        DirectoryInfo[] dirs = dir.GetDirectories();&lt;br /&gt;
        int count = dirs.Length;&lt;br /&gt;
        foreach (DirectoryInfo subDir in dirs) {&lt;br /&gt;
            count += CountDirectories(subDir);&lt;br /&gt;
        }&lt;br /&gt;
        return count;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Directory Object==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * C# Programmers Pocket Consultant&lt;br /&gt;
 * Author: Gregory S. MacBeth&lt;br /&gt;
 * Email: gmacbeth@comporium.net&lt;br /&gt;
 * Create Date: June 27, 2003&lt;br /&gt;
 * Last Modified Date:&lt;br /&gt;
 * Version: 1&lt;br /&gt;
 */&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
namespace Client.Chapter_11___File_and_Streams&lt;br /&gt;
{&lt;br /&gt;
  public class DirectoryObject {&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
      DirectoryInfo MyRoot = new DirectoryInfo(@&amp;quot;c:\projects&amp;quot;);&lt;br /&gt;
      DirectoryInfo[] MySub;&lt;br /&gt;
      DirectoryInfo TheFolder = null;&lt;br /&gt;
      FileInfo[] MyFiles;&lt;br /&gt;
      FileInfo TheFile = null;&lt;br /&gt;
      FileStream MyStream;&lt;br /&gt;
      MyRoot.CreateSubdirectory(&amp;quot;MyFolder&amp;quot;);&lt;br /&gt;
      MySub = MyRoot.GetDirectories();&lt;br /&gt;
      foreach (DirectoryInfo D in MySub)&lt;br /&gt;
      {&lt;br /&gt;
        if (D.Name == &amp;quot;MyFolder&amp;quot;)&lt;br /&gt;
          TheFolder = D;&lt;br /&gt;
      }&lt;br /&gt;
      MyFiles = TheFolder.GetFiles();&lt;br /&gt;
      foreach (FileInfo F in MyFiles)&lt;br /&gt;
      {&lt;br /&gt;
        if (F.Name == &amp;quot;Testing.txt&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
          TheFile = F;&lt;br /&gt;
          MyStream = TheFile.Open(FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);&lt;br /&gt;
          int i = 0;&lt;br /&gt;
          byte b = 0;&lt;br /&gt;
          while (i != 000)&lt;br /&gt;
          {&lt;br /&gt;
            MyStream.WriteByte(b);&lt;br /&gt;
            i++;&lt;br /&gt;
            b++;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      TheFile.Delete();&lt;br /&gt;
      TheFolder.Delete();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Directory Tree Host==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
User Interfaces in C#: Windows Forms and Custom Controls&lt;br /&gt;
by Matthew MacDonald&lt;br /&gt;
Publisher: Apress&lt;br /&gt;
ISBN: 1590590457&lt;br /&gt;
*/&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
namespace DirectoryTreeHost&lt;br /&gt;
{&lt;br /&gt;
    /// &amp;lt;summary&amp;gt;&lt;br /&gt;
    /// Summary description for DirectoryTreeHost.&lt;br /&gt;
    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
    public class DirectoryTreeHost : System.Windows.Forms.Form&lt;br /&gt;
    {&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Required designer variable.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        private System.ruponentModel.Container components = null;&lt;br /&gt;
        public DirectoryTreeHost()&lt;br /&gt;
        {&lt;br /&gt;
            //&lt;br /&gt;
            // Required for Windows Form Designer support&lt;br /&gt;
            //&lt;br /&gt;
            InitializeComponent();&lt;br /&gt;
            //&lt;br /&gt;
            // TODO: Add any constructor code after InitializeComponent call&lt;br /&gt;
            //&lt;br /&gt;
        }&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Clean up any resources being used.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        protected override void Dispose( bool disposing )&lt;br /&gt;
        {&lt;br /&gt;
            if( disposing )&lt;br /&gt;
            {&lt;br /&gt;
                if(components != null)&lt;br /&gt;
                {&lt;br /&gt;
                    components.Dispose();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            base.Dispose( disposing );&lt;br /&gt;
        }&lt;br /&gt;
        #region Windows Form Designer generated code&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Required method for Designer support - do not modify&lt;br /&gt;
        /// the contents of this method with the code editor.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        private void InitializeComponent()&lt;br /&gt;
        {&lt;br /&gt;
            // &lt;br /&gt;
            // DirectoryTreeHost&lt;br /&gt;
            // &lt;br /&gt;
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);&lt;br /&gt;
            this.ClientSize = new System.Drawing.Size(292, 266);&lt;br /&gt;
            this.Name = &amp;quot;DirectoryTreeHost&amp;quot;;&lt;br /&gt;
            this.Text = &amp;quot;DirectoryTreeHost&amp;quot;;&lt;br /&gt;
            this.Load += new System.EventHandler(this.DirectoryTreeHost_Load);&lt;br /&gt;
        }&lt;br /&gt;
        #endregion&lt;br /&gt;
        private void DirectoryTreeHost_Load(object sender, System.EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            DirectoryTree dirTree = new &lt;br /&gt;
                DirectoryTree();&lt;br /&gt;
            dirTree.Size = new Size(this.Width - 30, this.Height - 60);&lt;br /&gt;
            dirTree.Location = new Point(5, 5);&lt;br /&gt;
            dirTree.Drive = Char.Parse(&amp;quot;C&amp;quot;);&lt;br /&gt;
            this.Controls.Add(dirTree);&lt;br /&gt;
        }&lt;br /&gt;
        public static void Main()&lt;br /&gt;
        {&lt;br /&gt;
            Application.Run(new DirectoryTreeHost());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public class DirectoryTree : TreeView&lt;br /&gt;
    {&lt;br /&gt;
        public delegate void DirectorySelectedDelegate(object sender,&lt;br /&gt;
            DirectorySelectedEventArgs e);&lt;br /&gt;
        public event DirectorySelectedDelegate DirectorySelected;&lt;br /&gt;
        &lt;br /&gt;
        private Char drive;&lt;br /&gt;
        public Char Drive&lt;br /&gt;
        {&lt;br /&gt;
            get&lt;br /&gt;
            {&lt;br /&gt;
                return drive;&lt;br /&gt;
            }&lt;br /&gt;
            set&lt;br /&gt;
            {&lt;br /&gt;
                drive = value;&lt;br /&gt;
                RefreshDisplay();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // This is public so a Refresh can be triggered manually.&lt;br /&gt;
        public void RefreshDisplay()&lt;br /&gt;
        {&lt;br /&gt;
            // Erase the existing tree.&lt;br /&gt;
            this.Nodes.Clear();&lt;br /&gt;
            &lt;br /&gt;
            // Set the first node.&lt;br /&gt;
            TreeNode rootNode = new TreeNode(drive + &amp;quot;:\\&amp;quot;);&lt;br /&gt;
            this.Nodes.Add(rootNode);&lt;br /&gt;
            &lt;br /&gt;
            // Fill the first level and expand it.&lt;br /&gt;
            Fill(rootNode);&lt;br /&gt;
            this.Nodes[0].Expand();&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        private void Fill(TreeNode dirNode)&lt;br /&gt;
        {&lt;br /&gt;
            DirectoryInfo dir = new DirectoryInfo(dirNode.FullPath);&lt;br /&gt;
            &lt;br /&gt;
            // An exception could be thrown in this code if you don&amp;quot;t&lt;br /&gt;
            // have sufficient security permissions for a file or directory.&lt;br /&gt;
            // You can catch and then ignore this exception.&lt;br /&gt;
            &lt;br /&gt;
            foreach (DirectoryInfo dirItem in dir.GetDirectories())&lt;br /&gt;
            {&lt;br /&gt;
                // Add node for the directory.&lt;br /&gt;
                TreeNode newNode = new TreeNode(dirItem.Name);&lt;br /&gt;
                dirNode.Nodes.Add(newNode);&lt;br /&gt;
                newNode.Nodes.Add(&amp;quot;*&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        protected override void OnBeforeExpand(TreeViewCancelEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            base.OnBeforeExpand(e);&lt;br /&gt;
            // If a dummy node is found, remove it and read the real directory list.&lt;br /&gt;
            if (e.Node.Nodes[0].Text == &amp;quot;*&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                e.Node.Nodes.Clear();&lt;br /&gt;
                Fill(e.Node);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        protected override void OnAfterSelect(TreeViewEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            base.OnAfterSelect(e);&lt;br /&gt;
            &lt;br /&gt;
            // Raise the DirectorySelected event.&lt;br /&gt;
            if (DirectorySelected != null)&lt;br /&gt;
            {&lt;br /&gt;
                DirectorySelected(this,&lt;br /&gt;
                    new DirectorySelectedEventArgs(e.Node.FullPath));&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public class DirectorySelectedEventArgs : EventArgs&lt;br /&gt;
    {&lt;br /&gt;
        public string DirectoryName;&lt;br /&gt;
        public DirectorySelectedEventArgs(string directoryName)&lt;br /&gt;
        {&lt;br /&gt;
            this.DirectoryName = directoryName;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==File Search==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
public class FileSearch {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        String searchName = &amp;quot;win&amp;quot;;&lt;br /&gt;
        DirectoryInfo myDir = new DirectoryInfo(@&amp;quot;c:\Program Files&amp;quot;);&lt;br /&gt;
        SearchDirectories(myDir, searchName);&lt;br /&gt;
    }&lt;br /&gt;
    public static void SearchDirectories(DirectoryInfo dir, String target) {&lt;br /&gt;
        FileInfo[] files = dir.GetFiles();&lt;br /&gt;
        foreach (FileInfo file in files) {&lt;br /&gt;
            if (file.Name.IndexOf(target) &amp;gt; -1) {&lt;br /&gt;
                Console.WriteLine(file.Name);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        DirectoryInfo[] dirs = dir.GetDirectories();&lt;br /&gt;
        foreach (DirectoryInfo subDir in dirs) {&lt;br /&gt;
            SearchDirectories(subDir, target);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Find Files That Match a Wildcard Expression==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
public class WildcardTest {&lt;br /&gt;
    private static void Main(string[] args) {&lt;br /&gt;
        DirectoryInfo dir = new DirectoryInfo(&amp;quot;c:\\&amp;quot;);&lt;br /&gt;
        FileInfo[] files = dir.GetFiles(&amp;quot;*&amp;quot;);&lt;br /&gt;
            &lt;br /&gt;
        foreach (FileInfo file in files) {&lt;br /&gt;
            Console.Write(&amp;quot;Name: &amp;quot; + file.Name + &amp;quot;  &amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Size: &amp;quot; + file.Length.ToString());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get Creation Time==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        FileInfo file = new FileInfo(&amp;quot;c:\\a.txt&amp;quot;);&lt;br /&gt;
        // Display directory information.&lt;br /&gt;
        DirectoryInfo dir = file.Directory;&lt;br /&gt;
        Console.WriteLine(&amp;quot;Checking directory: &amp;quot; + dir.Name);&lt;br /&gt;
        Console.WriteLine(&amp;quot;In directory: &amp;quot; + dir.Name);&lt;br /&gt;
        Console.Write(&amp;quot;Directory exists: &amp;quot;);&lt;br /&gt;
        Console.WriteLine(dir.Exists.ToString());&lt;br /&gt;
        if (dir.Exists) {&lt;br /&gt;
            Console.Write(&amp;quot;Directory created: &amp;quot;);&lt;br /&gt;
            Console.WriteLine(dir.CreationTime.ToString());&lt;br /&gt;
        }&lt;br /&gt;
        Console.WriteLine();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get Current Directory==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main() {&lt;br /&gt;
        Console.WriteLine(&amp;quot;Using: &amp;quot; + Directory.GetCurrentDirectory());&lt;br /&gt;
        Console.WriteLine(&amp;quot;The relative path &amp;quot;file.txt&amp;quot; &amp;quot; + &amp;quot;will automatically become: &amp;quot;&amp;quot; + Path.GetFullPath(&amp;quot;file.txt&amp;quot;) + &amp;quot;&amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get directory name and file information in that directory==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
public class DirInfoApp&lt;br /&gt;
{&lt;br /&gt;
    public static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
        DirectoryInfo dir = new DirectoryInfo(Directory.GetCurrentDirectory());&lt;br /&gt;
        Console.WriteLine(&amp;quot;Current Dir: {0}&amp;quot;, dir.FullName);&lt;br /&gt;
   &lt;br /&gt;
        foreach (FileInfo f in dir.GetFiles())&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;{0,-14}{1,10}{2,20}&amp;quot;,f.Name, f.Length, f.LastWriteTime);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get Directory properties from DirectionInfo class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        FileInfo file = new FileInfo(&amp;quot;c:\\a.txt&amp;quot;);&lt;br /&gt;
        // Display directory information.&lt;br /&gt;
        DirectoryInfo dir = file.Directory;&lt;br /&gt;
        Console.WriteLine(&amp;quot;Checking directory: &amp;quot; + dir.Name);&lt;br /&gt;
        Console.WriteLine(&amp;quot;In directory: &amp;quot; + dir.Name);&lt;br /&gt;
        Console.Write(&amp;quot;Directory exists: &amp;quot;);&lt;br /&gt;
        Console.WriteLine(dir.Exists.ToString());&lt;br /&gt;
        if (dir.Exists) {&lt;br /&gt;
            Console.Write(&amp;quot;Directory attribute list: &amp;quot;);&lt;br /&gt;
            Console.WriteLine(dir.Attributes.ToString());&lt;br /&gt;
        }&lt;br /&gt;
        Console.WriteLine();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get Files from a directory==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        DirectoryInfo dir = new DirectoryInfo(&amp;quot;c:\\&amp;quot;);&lt;br /&gt;
        FileInfo[] files = dir.GetFiles(&amp;quot;c:\\a.txt&amp;quot;);&lt;br /&gt;
        foreach (FileInfo file in files) {&lt;br /&gt;
            Console.Write(&amp;quot;Name: &amp;quot; + file.Name + &amp;quot;  &amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Size: &amp;quot; + file.Length.ToString());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get Last Access Time==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        FileInfo file = new FileInfo(&amp;quot;c:\\a.txt&amp;quot;);&lt;br /&gt;
        // Display directory information.&lt;br /&gt;
        DirectoryInfo dir = file.Directory;&lt;br /&gt;
        Console.WriteLine(&amp;quot;Checking directory: &amp;quot; + dir.Name);&lt;br /&gt;
        Console.WriteLine(&amp;quot;In directory: &amp;quot; + dir.Name);&lt;br /&gt;
        Console.Write(&amp;quot;Directory exists: &amp;quot;);&lt;br /&gt;
        Console.WriteLine(dir.Exists.ToString());&lt;br /&gt;
        if (dir.Exists) {&lt;br /&gt;
            Console.Write(&amp;quot;Directory last accessed: &amp;quot;);&lt;br /&gt;
            Console.WriteLine(dir.LastAccessTime.ToString());&lt;br /&gt;
        }&lt;br /&gt;
        Console.WriteLine();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get Last Write Time==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        FileInfo file = new FileInfo(&amp;quot;c:\\a.txt&amp;quot;);&lt;br /&gt;
        // Display directory information.&lt;br /&gt;
        DirectoryInfo dir = file.Directory;&lt;br /&gt;
        Console.WriteLine(&amp;quot;Checking directory: &amp;quot; + dir.Name);&lt;br /&gt;
        Console.WriteLine(&amp;quot;In directory: &amp;quot; + dir.Name);&lt;br /&gt;
        Console.Write(&amp;quot;Directory exists: &amp;quot;);&lt;br /&gt;
        Console.WriteLine(dir.Exists.ToString());&lt;br /&gt;
        if (dir.Exists) {&lt;br /&gt;
            Console.Write(&amp;quot;Directory last updated: &amp;quot;);&lt;br /&gt;
            Console.WriteLine(dir.LastWriteTime.ToString());&lt;br /&gt;
        }&lt;br /&gt;
        Console.WriteLine();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get Name, Parent, Exists properties from DirectoryInfo class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        FileInfo file = new FileInfo(&amp;quot;c:\\a.txt&amp;quot;);&lt;br /&gt;
        // Display directory information.&lt;br /&gt;
        DirectoryInfo dir = file.Directory;&lt;br /&gt;
        Console.WriteLine(&amp;quot;Checking directory: &amp;quot; + dir.Name);&lt;br /&gt;
        Console.WriteLine(&amp;quot;In directory: &amp;quot; + dir.Name);&lt;br /&gt;
        Console.Write(&amp;quot;Directory exists: &amp;quot;);&lt;br /&gt;
        Console.WriteLine(dir.Exists.ToString());&lt;br /&gt;
        if (dir.Exists) {&lt;br /&gt;
            Console.Write(&amp;quot;Directory created: &amp;quot;);&lt;br /&gt;
            Console.WriteLine(dir.CreationTime.ToString());&lt;br /&gt;
            Console.Write(&amp;quot;Directory last updated: &amp;quot;);&lt;br /&gt;
            Console.WriteLine(dir.LastWriteTime.ToString());&lt;br /&gt;
            Console.Write(&amp;quot;Directory last accessed: &amp;quot;);&lt;br /&gt;
            Console.WriteLine(dir.LastAccessTime.ToString());&lt;br /&gt;
            Console.Write(&amp;quot;Directory attribute list: &amp;quot;);&lt;br /&gt;
            Console.WriteLine(dir.Attributes.ToString());&lt;br /&gt;
            Console.WriteLine(&amp;quot;Directory contains: &amp;quot; +&lt;br /&gt;
               dir.GetFiles().Length.ToString() + &amp;quot; files&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        Console.WriteLine();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==illustrates recursive Directory use==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Mastering Visual C# .NET&lt;br /&gt;
by Jason Price, Mike Gunderloy&lt;br /&gt;
Publisher: Sybex;&lt;br /&gt;
ISBN: 0782129110&lt;br /&gt;
*/&lt;br /&gt;
 /*&lt;br /&gt;
  Example15_8.cs illustrates recursive Directory use&lt;br /&gt;
*/&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
public class Example15_8 &lt;br /&gt;
{&lt;br /&gt;
  // ShowDirectory prints the directory name&lt;br /&gt;
  // and retrieves its children&lt;br /&gt;
  public static void ShowDirectory(DirectoryInfo di, int intLevel) &lt;br /&gt;
  {&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
      // print out the directory name, after 2*intLevel spaces&lt;br /&gt;
      string strPad = new String(&amp;quot; &amp;quot;, 2*intLevel);&lt;br /&gt;
      Console.WriteLine(strPad + di.Name);&lt;br /&gt;
      // get its children and recursively call this routine&lt;br /&gt;
      // with one more level of indenting&lt;br /&gt;
      foreach (DirectoryInfo diChild in di.GetDirectories())&lt;br /&gt;
        ShowDirectory(diChild, intLevel+1);&lt;br /&gt;
    } &lt;br /&gt;
    catch {} // just keep going in case of any error&lt;br /&gt;
    finally{}&lt;br /&gt;
  }&lt;br /&gt;
  public static void Main() &lt;br /&gt;
  {&lt;br /&gt;
    // create a DirectoryInfo object&lt;br /&gt;
    DirectoryInfo di = new DirectoryInfo(&amp;quot;c:\\&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // And pass it to the recursive printing routine&lt;br /&gt;
    ShowDirectory(di, 0);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==illustrates the Directory class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Mastering Visual C# .NET&lt;br /&gt;
by Jason Price, Mike Gunderloy&lt;br /&gt;
Publisher: Sybex;&lt;br /&gt;
ISBN: 0782129110&lt;br /&gt;
*/&lt;br /&gt;
 /*&lt;br /&gt;
  Example15_7.cs illustrates the Directory class&lt;br /&gt;
*/&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
public class Example15_7 &lt;br /&gt;
{&lt;br /&gt;
  // the DecipherAttributes method turns file attributes&lt;br /&gt;
  // into something easier for people to read&lt;br /&gt;
  public static void DecipherAttributes(FileAttributes f) &lt;br /&gt;
  {&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.Archive) == FileAttributes.Archive)&lt;br /&gt;
      Console.WriteLine(&amp;quot;Archive&amp;quot;);&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.rupressed) == FileAttributes.rupressed)&lt;br /&gt;
      Console.WriteLine(&amp;quot;Compressed&amp;quot;);&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.Device) == FileAttributes.Device)&lt;br /&gt;
      Console.WriteLine(&amp;quot;Device&amp;quot;);&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.Directory)   == FileAttributes.Directory)&lt;br /&gt;
      Console.WriteLine(&amp;quot;Directory&amp;quot;);&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.Encrypted)  == FileAttributes.Encrypted)&lt;br /&gt;
      Console.WriteLine(&amp;quot;Encrypted&amp;quot;);&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.Hidden)  == FileAttributes.Hidden)&lt;br /&gt;
      Console.WriteLine(&amp;quot;Hidden&amp;quot;);&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.NotContentIndexed)  == FileAttributes.NotContentIndexed)&lt;br /&gt;
      Console.WriteLine(&amp;quot;NotContentIndexed&amp;quot;);&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.Offline)  == FileAttributes.Offline)&lt;br /&gt;
      Console.WriteLine(&amp;quot;Offline&amp;quot;);&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.ReadOnly)  == FileAttributes.ReadOnly)&lt;br /&gt;
      Console.WriteLine(&amp;quot;ReadOnly&amp;quot;);&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.ReparsePoint)  == FileAttributes.ReparsePoint)&lt;br /&gt;
      Console.WriteLine(&amp;quot;ReparsePoint&amp;quot;);&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.SparseFile)  == FileAttributes.SparseFile)&lt;br /&gt;
      Console.WriteLine(&amp;quot;SparseFile&amp;quot;);&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.System)  == FileAttributes.System)&lt;br /&gt;
      Console.WriteLine(&amp;quot;System&amp;quot;);&lt;br /&gt;
    if ((f &amp;amp; FileAttributes.Temporary)  == FileAttributes.Temporary)&lt;br /&gt;
      Console.WriteLine(&amp;quot;Temporary&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public static void Main() &lt;br /&gt;
  {&lt;br /&gt;
    // create a DirectoryInfo object&lt;br /&gt;
    DirectoryInfo di = new DirectoryInfo(&amp;quot;c:\\&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // retrieve and show the directory attributes&lt;br /&gt;
    FileAttributes f = di.Attributes;&lt;br /&gt;
    Console.WriteLine(&amp;quot;Directory c:\\ has attributes:&amp;quot;);&lt;br /&gt;
    DecipherAttributes(f);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==illustrates the Directory class 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Mastering Visual C# .NET&lt;br /&gt;
by Jason Price, Mike Gunderloy&lt;br /&gt;
Publisher: Sybex;&lt;br /&gt;
ISBN: 0782129110&lt;br /&gt;
*/&lt;br /&gt;
 /*&lt;br /&gt;
  Example15_6.cs illustrates the Directory class&lt;br /&gt;
*/&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
public class Example15_6 &lt;br /&gt;
{&lt;br /&gt;
  public static void Main() &lt;br /&gt;
  {&lt;br /&gt;
    // get the files from the root directory&lt;br /&gt;
    string[] aFiles = Directory.GetFiles(&amp;quot;c:\\&amp;quot;);&lt;br /&gt;
    // and display them&lt;br /&gt;
    foreach (string s in aFiles)&lt;br /&gt;
      Console.WriteLine(s);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set Current Directory==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
class MainClass {&lt;br /&gt;
    static void Main() {&lt;br /&gt;
        Console.WriteLine(&amp;quot;Changing current directory to c:\\&amp;quot;);&lt;br /&gt;
        Directory.SetCurrentDirectory(@&amp;quot;c:\&amp;quot;);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Now the relative path &amp;quot;file.txt&amp;quot; &amp;quot; + &amp;quot;will automatically become &amp;quot;&amp;quot; + Path.GetFullPath(&amp;quot;file.txt&amp;quot;) + &amp;quot;&amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Traversing Directories==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
A Programmer&amp;quot;s Introduction to C# (Second Edition)&lt;br /&gt;
by Eric Gunnerson&lt;br /&gt;
Publisher: Apress  L.P.&lt;br /&gt;
ISBN: 1-893115-62-3&lt;br /&gt;
*/&lt;br /&gt;
// 32 - .NET Frameworks Overview\InputOutput\Traversing Directories&lt;br /&gt;
// copyright 2000 Eric Gunnerson&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
class DirectoryWalker&lt;br /&gt;
{&lt;br /&gt;
    public delegate void ProcessDirCallback(DirectoryInfo dir, int level, object obj);&lt;br /&gt;
    public delegate void ProcessFileCallback(FileInfo file, int level, object obj);&lt;br /&gt;
    &lt;br /&gt;
    public DirectoryWalker(    ProcessDirCallback dirCallback,&lt;br /&gt;
    ProcessFileCallback fileCallback)&lt;br /&gt;
    {&lt;br /&gt;
        this.dirCallback = dirCallback;&lt;br /&gt;
        this.fileCallback = fileCallback;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void Walk(string rootDir, object obj)&lt;br /&gt;
    {&lt;br /&gt;
        DoWalk(new DirectoryInfo(rootDir), 0, obj);&lt;br /&gt;
    }&lt;br /&gt;
    void DoWalk(DirectoryInfo dir, int level, object obj)&lt;br /&gt;
    {&lt;br /&gt;
        foreach (FileInfo f in dir.GetFiles())&lt;br /&gt;
        {&lt;br /&gt;
            if (fileCallback != null)&lt;br /&gt;
            fileCallback(f, level, obj);&lt;br /&gt;
        }&lt;br /&gt;
        foreach (DirectoryInfo d in dir.GetDirectories())&lt;br /&gt;
        {&lt;br /&gt;
            if (dirCallback != null)&lt;br /&gt;
            dirCallback(d, level, obj);&lt;br /&gt;
            DoWalk(d, level + 1, obj);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    ProcessDirCallback    dirCallback;&lt;br /&gt;
    ProcessFileCallback    fileCallback;&lt;br /&gt;
}&lt;br /&gt;
public class TraversingDirectories&lt;br /&gt;
{&lt;br /&gt;
    public static void PrintDir(DirectoryInfo d, int level, object obj)&lt;br /&gt;
    {&lt;br /&gt;
        WriteSpaces(level * 2);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Dir: {0}&amp;quot;, d.FullName);&lt;br /&gt;
    }&lt;br /&gt;
    public static void PrintFile(FileInfo f, int level, object obj)&lt;br /&gt;
    {&lt;br /&gt;
        WriteSpaces(level * 2);&lt;br /&gt;
        Console.WriteLine(&amp;quot;File: {0}&amp;quot;, f.FullName);&lt;br /&gt;
    }&lt;br /&gt;
    public static void WriteSpaces(int spaces)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; spaces; i++)&lt;br /&gt;
        Console.Write(&amp;quot; &amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
    public static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
        DirectoryWalker dw = new DirectoryWalker(&lt;br /&gt;
        new DirectoryWalker.ProcessDirCallback(PrintDir),&lt;br /&gt;
        new DirectoryWalker.ProcessFileCallback(PrintFile));&lt;br /&gt;
        &lt;br /&gt;
        string root = &amp;quot;.&amp;quot;;&lt;br /&gt;
        if (args.Length == 1)&lt;br /&gt;
        root = args[0];&lt;br /&gt;
        dw.Walk(root, &amp;quot;Passed string object&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Uses the DirectoryInfo class to recursively show subdirectories==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
C# Programming Tips &amp;amp; Techniques&lt;br /&gt;
by Charles Wright, Kris Jamsa&lt;br /&gt;
Publisher: Osborne/McGraw-Hill (December 28, 2001)&lt;br /&gt;
ISBN: 0072193794&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
//  Dirs.cs -- Uses the DirectoryInfo class to recursively show&lt;br /&gt;
//             subdirectories.&lt;br /&gt;
//&lt;br /&gt;
//             Compile this program with the following command line:&lt;br /&gt;
//                 C:&amp;gt;csc Dirs.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
namespace nsStreams&lt;br /&gt;
{&lt;br /&gt;
    public class Dirs&lt;br /&gt;
    {&lt;br /&gt;
        static public void Main (string [] args)&lt;br /&gt;
        {&lt;br /&gt;
            string StartDir = &amp;quot;&amp;quot;;&lt;br /&gt;
// Build the directory name from any arguments&lt;br /&gt;
            if (args.Length &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                foreach (string str in args)&lt;br /&gt;
                {&lt;br /&gt;
                    StartDir += str;&lt;br /&gt;
                    StartDir += &amp;quot; &amp;quot;;&lt;br /&gt;
                }&lt;br /&gt;
// Strip any trailing spaces from the directory name&lt;br /&gt;
                char [] trim = new char[1] {&amp;quot; &amp;quot;};&lt;br /&gt;
                StartDir.TrimEnd (trim);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                StartDir = &amp;quot;.&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
            DirectoryInfo d;&lt;br /&gt;
            try&lt;br /&gt;
            {&lt;br /&gt;
                d = new DirectoryInfo (StartDir);&lt;br /&gt;
            }&lt;br /&gt;
            catch (DirectoryNotFoundException)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine (&amp;quot;Cannot open directory &amp;quot; + StartDir);&lt;br /&gt;
                 return;&lt;br /&gt;
            }&lt;br /&gt;
            DirectoryInfo [] dirs;&lt;br /&gt;
            try&lt;br /&gt;
            {&lt;br /&gt;
                dirs = d.GetDirectories ();&lt;br /&gt;
            }&lt;br /&gt;
            catch (UnauthorizedAccessException)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine (&amp;quot;Not authorized to access &amp;quot; + StartDir);&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            catch (DirectoryNotFoundException)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine (&amp;quot;Cannot open directory &amp;quot; + StartDir);&lt;br /&gt;
                 return;&lt;br /&gt;
            }&lt;br /&gt;
            foreach (DirectoryInfo dir in dirs)&lt;br /&gt;
            {&lt;br /&gt;
                try&lt;br /&gt;
                {&lt;br /&gt;
                    ShowDirectories (dir, 0);&lt;br /&gt;
                }&lt;br /&gt;
                catch (UnauthorizedAccessException)&lt;br /&gt;
                {&lt;br /&gt;
                    continue;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        static public void ShowDirectories (DirectoryInfo d, int level)&lt;br /&gt;
        {&lt;br /&gt;
            int spaces = level;&lt;br /&gt;
            while (spaces-- &amp;gt;= 0)&lt;br /&gt;
                Console.Write (&amp;quot; &amp;quot;);&lt;br /&gt;
            Console.WriteLine (d);&lt;br /&gt;
            DirectoryInfo [] dirs = d.GetDirectories ();&lt;br /&gt;
            if (dirs.Length &amp;gt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                foreach (DirectoryInfo dir in dirs)&lt;br /&gt;
                {&lt;br /&gt;
                    try&lt;br /&gt;
                    {&lt;br /&gt;
                        ShowDirectories (dir, level + 2);&lt;br /&gt;
                    }&lt;br /&gt;
                    catch (UnauthorizedAccessException)&lt;br /&gt;
                    {&lt;br /&gt;
                        continue;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>