想用递归查看c:\\下面所有文件
代码如下,可是每次查得到一半就报错说c:\\System Volume Information这个文件不让访问?
郁闷死了,高手进指点 ListFiles(new DirectoryInfo("d:\\"));
this.label4.Text = Convert.ToString(m);
//
} public void ListFiles( FileSystemInfo fileinfo )
{
if( ! fileinfo.Exists ) return;
DirectoryInfo dirinfo = fileinfo as DirectoryInfo;
if( dirinfo == null ) return; //不是目录
FileSystemInfo [] files = dirinfo.GetFileSystemInfos();
for( int i=0; i<files.Length ;i++)//遍历目录下所有文件、子目录
{ FileInfo file = files[i] as FileInfo; if( file != null ) // 是文件 {
//Thread.Sleep(30);
this.statusBar1.Text =file.Name;
m+=1;
} else //是目录
{
ListFiles( files[i] ); //对子目录进行递归调用
} } }
代码如下,可是每次查得到一半就报错说c:\\System Volume Information这个文件不让访问?
郁闷死了,高手进指点 ListFiles(new DirectoryInfo("d:\\"));
this.label4.Text = Convert.ToString(m);
//
} public void ListFiles( FileSystemInfo fileinfo )
{
if( ! fileinfo.Exists ) return;
DirectoryInfo dirinfo = fileinfo as DirectoryInfo;
if( dirinfo == null ) return; //不是目录
FileSystemInfo [] files = dirinfo.GetFileSystemInfos();
for( int i=0; i<files.Length ;i++)//遍历目录下所有文件、子目录
{ FileInfo file = files[i] as FileInfo; if( file != null ) // 是文件 {
//Thread.Sleep(30);
this.statusBar1.Text =file.Name;
m+=1;
} else //是目录
{
ListFiles( files[i] ); //对子目录进行递归调用
} } }
{
foreach(FileSystemInfo fi in di.GetFileSystemInfos())
{
if(fi.Extension!="")
{
//这里没有对fi是文件夹还是文件进行检测,小心出错.
FileInfo ff = (FileInfo)fi;
switch(fi.Extension.ToLower())
{
case ".mdb":
database.Text = database.Text+"文件名:"+ff.Name+" 大小:"+changestr(ff.Length.ToString("n"))+"<br>";
data++;
datalen = datalen+ff.Length;
break;
case ".jpg":
image++;
imagelen = imagelen+ff.Length;
break;
case ".gif":
image++;
imagelen = imagelen+ff.Length;
break;
case ".xlsfile":
grade++;
gradelen = gradelen+ff.Length;
break;
default:
break;
}
sys++;
systemlen = systemlen+ff.Length;
}
else
{
directory((DirectoryInfo)fi);
}
}
}
//说明一下,这是我写的一个函数,不过是在asp.net里调用的.用的是C#语法.原理是一样的.给你当参考.