正文

C# 文件的输入输出程序与控制[1]2008-08-29 13:24:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzrj/37946.html

分享到:

// <summary>

        // 获取所有逻辑盘并列出硬盘所有目录

        // </summary>

        private void ListDrives()

        {

            TreeNode tn;

 

            // 获取系统中的所有逻辑盘

            string[] drives = Directory.GetLogicalDrives();

 

            // 向树视图中添加节点

            tvDir.BeginUpdate();

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

            {

                // 根据驱动器的不同类型来确定所进行的操作

                switch( GetDriveType( drives[i] ))

                {

                    case 2:     // 软驱

                        // 如果是软驱,则仅向树视图中添加节点

                        // 而不列举它的目录,并且它的图像索引以及

                        // 处于选择状态下的图像索引分别为00

                        tn = new TreeNode( drives[i] ,0,0);                

                        break;

                    case 3:     // 硬盘

                        // 如果是硬盘,则除了向树视图中添加节点外,

                        // 还要列举出它的目录

                        tn = new TreeNode( drives[i],1,1);

                        ListDirs(tn,drives[i]); // 列举硬盘中的目录

                        break;

                    case 5:     // 光驱

                        // 如果是光驱,则仅向树视图中添加节点

                        tn = new TreeNode( drives[i],2,2);

                                  break;

                    default:    // 在默认情况下,按软驱的情况进行处理

                        tn = new TreeNode( drives[i] ,0,0);

                        break;

                }

                tvDir.Nodes.Add( tn );  // 把创建的节点添加到树视图中

            }

            tvDir.EndUpdate();

 

            // C盘设为当前选择节点

            tvDir.SelectedNode = tvDir.Nodes[1];

        }

 

 

public MainForm()

        {

            //

            // Required for Windows Form Designer support

            //

            InitializeComponent();

 

           

            nDirLevel = 0;      // 把列举深度初始化为0

            ListDrives();       // 获取逻辑驱动器并列出硬盘中的目录

        }

 

 

// <summary>

        // 递归列出指定目录的所有子目录

        // </summary>

        private void ListDirs(TreeNode tn,string strDir)

        {

            if( nDirLevel>4 )   // 调整该行语句,可以改变列举目录的深度

            {

                nDirLevel = 0;

                return;

            }

            nDirLevel++;

            string[] arrDirs;

            TreeNode  tmpNode;

           

            try

            {

                // 获取指定目录下的所有子目录

                arrDirs = Directory.GetDirectories( strDir);

                if( arrDirs.Length == 0 ) return;

                // 把每一个子目录添加到参数传递进来的树视图节点中

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

                {

                    tmpNode = new TreeNode( Path.GetFileName(arrDirs

                    [i]),3,4 );

                    // 对于每一个子目录,都进行递归列举

                    ListDirs( tmpNode,arrDirs[i] );

                    tn.Nodes.Add( tmpNode );

                }

            }

            catch

            {

                return;

            }

        }

 

// <summary>

        // 列出指定目录下的所有子目录和文件

        // </summary>

        private void ListDirsAndFiles(string strDir)

        {

            ListViewItem lvi;

            int nImgIndex;

            string[] items = new String[4];

            string[] dirs;

            string[] files;

            try

            {

                // 获取指定目录下的所有子目录

                dirs = Directory.GetDirectories( strDir );

                // 获取指定目录下的所有文件

                files = Directory.GetFiles( strDir );

            }

            catch

            {

                return;

            }

阅读(1414) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册