为什么查看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);
}