C#,给定一个目录,遍历该目录下的所有文件、文件夹
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#,给定一个目录,遍历该目录下的所有文件、文件夹相关的知识,希望对你有一定的参考价值。
要求将遍历出来的目录结构保存进数据库,通过 ID PID体现 ID为自增
参考技术A LZ,这是我以前写的,贴给你,不过没有实现“要求将遍历出来的目录结构保存进数据库,通过 ID PID体现 ID为自增”//获取指定路径下的所有文件夹(包括子文件夹)
private List<string> GetAllDirectories(string path)
List<string> dirList = new List<string>();
if (!Directory.Exists(path))
return dirList;
string[] dirs = Directory.GetDirectories(Path.GetFullPath(path).ToString());
if (dirs == null || dirs.Length == 0)
return dirList;
dirList.AddRange(dirs);
for (int i = 0; i < dirs.Length; i++)
List<string> subDirs = GetAllDirectories(dirs[i]);
if (subDirs.Count > 0)
dirList.AddRange(subDirs);
for (int i = 0; i < dirList.Count; i++)
dirList[i] = dirList[i].Replace("\\", _separator);
return dirList;
参考技术B string strFilePath = this.txtPath.Text;
FileInfo[] arrFile = new DirectoryInfo(strFilePath).GetFiles();
//把文件名逐一添加到列表框控件
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("filename"));
dt.Columns.Add(new DataColumn("filesize"));
dt.Columns.Add(new DataColumn("filetype"));
dt.Columns.Add(new DataColumn("filedate"));
dt.Columns.Add(new DataColumn("fullpath"));
foreach (FileInfo fi in arrFile)
string[] str = new string[5];
str[0] = fi.Name;
str[1] = fi.Length.ToString();
str[2] = fi.Extension;
str[3] = fi.LastWriteTime.ToString();
str[4] = fi.FullName;
dt.Rows.Add(str);
gvFile.DataSource = dt;
gvFile.DataBind(); 参考技术C LZ,用递归可以实现,在遍历目录下的所有文件和文件夹,遍历文件夹时,在调用遍历的函数,遍历当前的文件夹。思路大概就是这样 参考技术D 111111本回答被提问者采纳
c#遍历文件夹获得所有文件
在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]); } }
以上是关于C#,给定一个目录,遍历该目录下的所有文件、文件夹的主要内容,如果未能解决你的问题,请参考以下文章