C#,给定一个目录,遍历该目录下的所有文件、文件夹
4个回答
展开全部
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;
}
//获取指定路径下的所有文件夹(包括子文件夹)
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
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();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
LZ,用递归可以实现,在遍历目录下的所有文件和文件夹,遍历文件夹时,在调用遍历的函数,遍历当前的文件夹。思路大概就是这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
111111
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询