public static void ListFiles(FileSystemInfo info)
        ...{
            if(!info.Exists) return;
            DirectoryInfo dir=info as DirectoryInfo;
            //不是目录
            if(dir==null) return;
            FileSystemInfo[] files=dir.GetFileSystemInfos();
            for(int i=0;i<files.Length;i++)
            ...{
                FilesInfo file=file[i] as FileInfo;
                //是文件
                if(file!=null)
                ...{//文件处理
                }
                else
                ...{//继续遍历目录
                    ListFiles(files[i]);
                }
            }
        }这是我在网上找到的代码,基本算法结构已经懂了,但是类似这样的语句“DirectoryInfo dir=info as DirectoryInfo;”,搞不懂是什么意思,请高手指点,还有就是esle语句中进行递归调用,会不会造成数据现场的破坏,比如,在调用完成后file数组的值会不被改变。新手+菜鸟,没分,请不吝赐教