在c#中,想要获得一个文件夹下的所有子目录以及文件十分简单。
首先,获取目录的情况下,DirectoryInfo.GetDirectories():获取目录(不包含子目录)的子目录,,返回类型为DirectoryInfo[],支持通配符查找;
其次,获取文件的情况下, DirectoryInfo.GetFiles():获取目录中(不包含子目录)的文件,返回类型为FileInfo[],支持通配符查找;
最后,DirectoryInfo. GetFileSystemInfos():获取指定目录下(不包含子目录)的文件和子目录,返回类型为FileSystemInfo[],支持通配符查找;
如何获取指定文件的基本信息;
FileInfo.Exists:获取指定文件是否存在;
FileInfo.Name,FileInfo.Extensioin:获取文件的名称和扩展名;
FileInfo.FullName:获取文件的全限定名称(完整路径);
FileInfo.Directory:获取文件所在目录,返回类型为DirectoryInfo;
FileInfo.DirectoryName:获取文件所在目录的路径(完整路径);
FileInfo.Length:获取文件的大小(字节数);
FileInfo.IsReadOnly:获取文件是否只读;
FileInfo.Attributes:获取或设置指定文件的属性,返回类型为FileAttributes枚举,可以是多个值的组合
FileInfo.CreationTime、FileInfo.LastAccessTime、FileInfo.LastWriteTime:分别用于获取文件的创建时间、访问时间、修改时间;
想要获取某一文件夹下的所有文件,通用的方法就是遍历
public static void GetAllDir(string dir1) { List<string> list = new List<string>(); DirectoryInfo dir = new DirectoryInfo(dir); DirectoryInfo[] dirinfo = dir.GetDirectories(); for (int i = 0; i < dirinfo.Length; i++) { list.Add(dirinfo[i].FullName); GetAllDir(dirinfo[i].FullName); } for (int i = 0; i < list.Count; i++) { Console.WriteLine(list[i]); } }