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#,给定一个目录,遍历该目录下的所有文件、文件夹的主要内容,如果未能解决你的问题,请参考以下文章

c#遍历一个文件夹下的所有文件包括子文件夹

c#遍历文件夹获得所有文件

C# 使用ftp下载一个文件夹下的所有文件,包括子目录文件夹

C# 遍历文件夹及子目录下所有图片

PHP删除当前目录及其目录下的所有文件

C#如何遍历指定目录以及指定目录下所有子文件夹,并获取除指定文件类型以外的所有文件的绝对路径?