为什么查看c盘目录会出现一些不必要的子目录和文件?
我想打印出C盘下第一级中的目录和文件,就像资源管理器一样,但下面程序列出了资源管理器中没有列出的文件和目录      
 Console.WriteLine( "*****文件***** "); 
                         s1=Directory.GetFiles(@ "c:\ "); 
                         foreach(string   t2   in   s1)   Console.WriteLine(t2);                     
    Console.WriteLine( "********目录******* "); 
             s2=Directory.GetDirectories(@ "c:\ "); 
             foreach(string   t2   in   s2)         Console.WriteLine(t2);                             
 运行结果为: 
 *****文件***** 
 c:\AUTOEXEC.BAT 
 c:\boot.ini 
 c:\bootfont.bin 
 c:\CONFIG.SYS 
 c:\hiberfil.sys 
 c:\IO.SYS 
 c:\KAVInfo.ini 
 c:\MSDOS.SYS 
 c:\NTDETECT.COM 
 c:\ntldr 
 c:\pagefile.sys 
 ********目录******* 
                   c:\Config.Msi 
                   c:\Documents   and   Settings 
                   c:\Inetpub 
                   c:\KRECYCLE 
                   c:\PowerPlr 
                   c:\Program   Files 
                   c:\RECYCLER 
                   c:\System   Volume   Information 
                   c:\Syswm1h 
                   c:\WINDOWS 
 请按任意键继续.   .   .   
 我的系统是XP的,上面的好多数据都没有在资源管理器中列出来,为什么会出现这种情况? 
 我想让结果与资源管理器中列出的一样应该怎么做?
------解决方案--------------------因为你把所有的文件和文件夹都列出来了,你先判断一下文件和文件夹的属性,如果是隐藏(Hidden)的和系统(System)的就不要列出来就可以了。   
 this.listBox1.Items.Add( "*****文件***** "); 
 DirectoryInfo s1 = new DirectoryInfo(@ "C:\ "); 
 foreach (FileInfo t1 in s1.GetFiles()) 
 { 
     if (t1.Attributes.ToString().IndexOf( "Hidden ")  < 0 &&  
         t1.Attributes.ToString().IndexOf( "System ")  < 0) 
     Console.WriteLine(t1); 
 }   
 this.listBox2.Items.Add( "********目录******* "); 
 DirectoryInfo s2 = new DirectoryInfo(@ "C:\ ");  
 foreach (DirectoryInfo t2 in s2.GetDirectories() ) 
 { 
     if (t2.Attributes.ToString().IndexOf( "Hidden ")  < 0 &&  
         t2.Attributes.ToString().IndexOf( "System ")  < 0) 
         Console.WriteLine(t2); 
 }