递归遍历

 

         ///   <summary>
        
///  递归得到文件目录树
        
///   </summary>
        
///   <param name="sDir"> GetFileList(@"c:Windows") </param>
         static   void  GetFileList( string  sDir)
        { 
            
// 处理根目录下的文件
             foreach  ( string  sFiles  in  Directory.GetFiles(sDir))
            {
                Console.WriteLine(sFiles);
                wt(sFiles);
            }
            
// 处理包含文件夹
             foreach  ( string  sDirs  in  Directory.GetDirectories(sDir))
            {
                
foreach  ( string  sFiles  in  Directory.GetFiles(sDirs))
                {
                    Console.WriteLine(sFiles);
                    wt(sFiles);
                }
                
// 开始递归调用
                GetFileList(sDirs);
            }
        }
        
///   <summary>
        
///  递归得到注册表键值,键值为空会出错,不明白为什么,所以加了判断
        
///   </summary>
        
///   <param name="sRegKey"> GetRegList(@"SOFTWAREMicrosoft") </param>
         static   void  GetRegList( string  sRegKey)
        {
            RegistryKey rkRoot 
=  Registry.LocalMachine.OpenSubKey(sRegKey,  true );
            
if  (rkRoot  !=   null )
            {
                
foreach  ( string  sRootKeyNames  in  rkRoot.GetValueNames())
                {
                    Console.WriteLine(rkRoot 
+   " / "   + sRootKeyNames  +   " : "   +  rkRoot.GetValue(sRootKeyNames).ToString());
                }

                
foreach  ( string  sDirs  in  rkRoot.GetSubKeyNames())
                {
                    RegistryKey rk 
=  Registry.LocalMachine.OpenSubKey(sRegKey  +   " / "   +  sDirs,  true );
                    
if  (rk  !=   null )
                    {
                        
foreach  ( string  sKeyNames  in  rk.GetValueNames())
                        {
                            
string  ss  =  sRegKey  +   " / "   +  sDirs;
                            RegistryKey rkTemp 
=  Registry.LocalMachine.OpenSubKey(ss);
                            Console.WriteLine(ss 
+   " / "   + sKeyNames  +   "  :  "   +  rkTemp.GetValue(sKeyNames));
                        }
                        GetRegList(sDirs);
                    }
                }
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值