文件夹里的文件是不是子文件夹

请教C语言如何删除文件夹里文件以及子目录
[问题点数:20分,结帖人sxjkk]
请教C语言如何删除文件夹里文件以及子目录
[问题点数:20分,结帖人sxjkk]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2011年5月 Linux/Unix社区大版内专家分月排行榜第一2011年4月 Linux/Unix社区大版内专家分月排行榜第一2011年3月 Linux/Unix社区大版内专家分月排行榜第一2010年12月 Linux/Unix社区大版内专家分月排行榜第一2010年11月 Linux/Unix社区大版内专家分月排行榜第一2010年10月 Linux/Unix社区大版内专家分月排行榜第一2010年9月 Linux/Unix社区大版内专家分月排行榜第一2010年8月 Linux/Unix社区大版内专家分月排行榜第一2010年7月 Linux/Unix社区大版内专家分月排行榜第一2010年6月 Linux/Unix社区大版内专家分月排行榜第一2010年5月 Linux/Unix社区大版内专家分月排行榜第一2010年4月 Linux/Unix社区大版内专家分月排行榜第一2010年3月 Linux/Unix社区大版内专家分月排行榜第一2010年2月 Linux/Unix社区大版内专家分月排行榜第一2010年1月 Linux/Unix社区大版内专家分月排行榜第一2009年10月 Linux/Unix社区大版内专家分月排行榜第一2009年9月 Linux/Unix社区大版内专家分月排行榜第一
2011年7月 Linux/Unix社区大版内专家分月排行榜第二2011年6月 Linux/Unix社区大版内专家分月排行榜第二2011年2月 Linux/Unix社区大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。27015人阅读
C/C++(132)
Computer System(31)
function:遍历目录下所有文件,返回文件总数,子文件夹总数(修改一下可以获得全部文件名等)。#include &stdlib.h&
#include &direct.h&
#include &string.h&
#include &io.h&
#include &stdio.h&
#include &iostream&
class CBrowseDir
protected:
//存放初始目录的绝对路径,以'\'结尾
char m_szInitDir[_MAX_PATH];
//缺省构造器
CBrowseDir();
//设置初始目录为dir,如果返回false,表示目录不可用
bool SetInitDir(const char *dir);
//开始遍历初始目录及其子目录下由filespec指定类型的文件
//filespec可以使用通配符 * ?,不能包含路径。
//如果返回false,表示遍历过程被用户中止
bool BeginBrowse(const char *filespec);
protected:
//遍历目录dir下由filespec指定的文件
//对于子目录,采用迭代的方法
//如果返回false,表示中止遍历文件
bool BrowseDir(const char *dir,const char *filespec);
//函数BrowseDir每找到一个文件,就调用ProcessFile
//并把文件名作为参数传递过去
//如果返回false,表示中止遍历文件
//用户可以覆写该函数,加入自己的处理代码
virtual bool ProcessFile(const char *filename);
//函数BrowseDir每进入一个目录,就调用ProcessDir
//并把正在处理的目录名及上一级目录名作为参数传递过去
//如果正在处理的是初始目录,则parentdir=NULL
//用户可以覆写该函数,加入自己的处理代码
//比如用户可以在这里统计子目录的个数
virtual void ProcessDir(const char *currentdir,const char *parentdir);
CBrowseDir::CBrowseDir()
//用当前目录初始化m_szInitDir
getcwd(m_szInitDir,_MAX_PATH);
//如果目录的最后一个字母不是'\',则在最后加上一个'\'
int len=strlen(m_szInitDir);
if (m_szInitDir[len-1] != '\\')
strcat(m_szInitDir,&\\&);
bool CBrowseDir::SetInitDir(const char *dir)
//先把dir转换为绝对路径
if (_fullpath(m_szInitDir,dir,_MAX_PATH) == NULL)
//判断目录是否存在
if (_chdir(m_szInitDir) != 0)
//如果目录的最后一个字母不是'\',则在最后加上一个'\'
int len=strlen(m_szInitDir);
if (m_szInitDir[len-1] != '\\')
strcat(m_szInitDir,&\\&);
bool CBrowseDir::BeginBrowse(const char *filespec)
ProcessDir(m_szInitDir,NULL);
return BrowseDir(m_szInitDir,filespec);
bool CBrowseDir::BrowseDir(const char *dir,const char *filespec)
_chdir(dir);
//首先查找dir中符合要求的文件
_finddata_
if ((hFile=_findfirst(filespec,&fileinfo)) != -1)
//检查是不是目录
//如果不是,则进行处理
if (!(fileinfo.attrib & _A_SUBDIR))
char filename[_MAX_PATH];
strcpy(filename,dir);
strcat(filename,fileinfo.name);
cout && filename &&
if (!ProcessFile(filename))
} while (_findnext(hFile,&fileinfo) == 0);
_findclose(hFile);
//查找dir中的子目录
//因为在处理dir中的文件时,派生类的ProcessFile有可能改变了
//当前目录,因此还要重新设置当前目录为dir。
//执行过_findfirst后,可能系统记录下了相关信息,因此改变目录
//对_findnext没有影响。
_chdir(dir);
if ((hFile=_findfirst(&*.*&,&fileinfo)) != -1)
//检查是不是目录
//如果是,再检查是不是 . 或 ..
//如果不是,进行迭代
if ((fileinfo.attrib & _A_SUBDIR))
if (strcmp(fileinfo.name,&.&) != 0 && strcmp
(fileinfo.name,&..&) != 0)
char subdir[_MAX_PATH];
strcpy(subdir,dir);
strcat(subdir,fileinfo.name);
strcat(subdir,&\\&);
ProcessDir(subdir,dir);
if (!BrowseDir(subdir,filespec))
} while (_findnext(hFile,&fileinfo) == 0);
_findclose(hFile);
bool CBrowseDir::ProcessFile(const char *filename)
void CBrowseDir::ProcessDir(const char
*currentdir,const char *parentdir)
//从CBrowseDir派生出的子类,用来统计目录中的文件及子目录个数
class CStatDir:public CBrowseDir
protected:
int m_nFileC
//保存文件个数
int m_nSubdirC //保存子目录个数
//缺省构造器
CStatDir()
//初始化数据成员m_nFileCount和m_nSubdirCount
m_nFileCount=m_nSubdirCount=0;
//返回文件个数
int GetFileCount()
return m_nFileC
//返回子目录个数
int GetSubdirCount()
//因为进入初始目录时,也会调用函数ProcessDir,
//所以减1后才是真正的子目录个数。
return m_nSubdirCount-1;
protected:
//覆写虚函数ProcessFile,每调用一次,文件个数加1
virtual bool ProcessFile(const char *filename)
m_nFileCount++;
return CBrowseDir::ProcessFile(filename);
//覆写虚函数ProcessDir,每调用一次,子目录个数加1
virtual void ProcessDir
(const char *currentdir,const char *parentdir)
m_nSubdirCount++;
CBrowseDir::ProcessDir(currentdir,parentdir);
void main()
//获取目录名
char buf[256];
printf(&请输入要统计的目录名:&);
gets(buf);
//构造类对象
//设置要遍历的目录
if (!statdir.SetInitDir(buf))
puts(&目录不存在。&);
//开始遍历
statdir.BeginBrowse(&*.*&);
printf(&文件总数: %d\n子目录总数:%d\n&,statdir.GetFileCount(),statdir.GetSubdirCount());
} 已在windows上验证有效。转载自。下面我加了BeginBrowseFilenames函数,以vector&char*&形式返回目录中所有文件名。#include &stdlib.h&
#include &direct.h&
#include &string.h&
#include &string&
#include &io.h&
#include &stdio.h&
#include &vector&
#include &iostream&
class CBrowseDir
protected:
//存放初始目录的绝对路径,以'\'结尾
char m_szInitDir[_MAX_PATH];
//缺省构造器
CBrowseDir();
//设置初始目录为dir,如果返回false,表示目录不可用
bool SetInitDir(const char *dir);
//开始遍历初始目录及其子目录下由filespec指定类型的文件
//filespec可以使用通配符 * ?,不能包含路径。
//如果返回false,表示遍历过程被用户中止
bool BeginBrowse(const char *filespec);
vector&string& BeginBrowseFilenames(const char *filespec);
protected:
//遍历目录dir下由filespec指定的文件
//对于子目录,采用迭代的方法
//如果返回false,表示中止遍历文件
bool BrowseDir(const char *dir,const char *filespec);
vector&string& GetDirFilenames(const char *dir,const char *filespec);
//函数BrowseDir每找到一个文件,就调用ProcessFile
//并把文件名作为参数传递过去
//如果返回false,表示中止遍历文件
//用户可以覆写该函数,加入自己的处理代码
virtual bool ProcessFile(const char *filename);
//函数BrowseDir每进入一个目录,就调用ProcessDir
//并把正在处理的目录名及上一级目录名作为参数传递过去
//如果正在处理的是初始目录,则parentdir=NULL
//用户可以覆写该函数,加入自己的处理代码
//比如用户可以在这里统计子目录的个数
virtual void ProcessDir(const char *currentdir,const char *parentdir);
CBrowseDir::CBrowseDir()
//用当前目录初始化m_szInitDir
getcwd(m_szInitDir,_MAX_PATH);
//如果目录的最后一个字母不是'\',则在最后加上一个'\'
int len=strlen(m_szInitDir);
if (m_szInitDir[len-1] != '\\')
strcat(m_szInitDir,&\\&);
bool CBrowseDir::SetInitDir(const char *dir)
//先把dir转换为绝对路径
if (_fullpath(m_szInitDir,dir,_MAX_PATH) == NULL)
//判断目录是否存在
if (_chdir(m_szInitDir) != 0)
//如果目录的最后一个字母不是'\',则在最后加上一个'\'
int len=strlen(m_szInitDir);
if (m_szInitDir[len-1] != '\\')
strcat(m_szInitDir,&\\&);
vector&string& CBrowseDir::BeginBrowseFilenames(const char *filespec)
ProcessDir(m_szInitDir,NULL);
return GetDirFilenames(m_szInitDir,filespec);
bool CBrowseDir::BeginBrowse(const char *filespec)
ProcessDir(m_szInitDir,NULL);
return BrowseDir(m_szInitDir,filespec);
bool CBrowseDir::BrowseDir(const char *dir,const char *filespec)
_chdir(dir);
//首先查找dir中符合要求的文件
_finddata_
if ((hFile=_findfirst(filespec,&fileinfo)) != -1)
//检查是不是目录
//如果不是,则进行处理
if (!(fileinfo.attrib & _A_SUBDIR))
char filename[_MAX_PATH];
strcpy(filename,dir);
strcat(filename,fileinfo.name);
cout && filename &&
if (!ProcessFile(filename))
} while (_findnext(hFile,&fileinfo) == 0);
_findclose(hFile);
//查找dir中的子目录
//因为在处理dir中的文件时,派生类的ProcessFile有可能改变了
//当前目录,因此还要重新设置当前目录为dir。
//执行过_findfirst后,可能系统记录下了相关信息,因此改变目录
//对_findnext没有影响。
_chdir(dir);
if ((hFile=_findfirst(&*.*&,&fileinfo)) != -1)
//检查是不是目录
//如果是,再检查是不是 . 或 ..
//如果不是,进行迭代
if ((fileinfo.attrib & _A_SUBDIR))
if (strcmp(fileinfo.name,&.&) != 0 && strcmp
(fileinfo.name,&..&) != 0)
char subdir[_MAX_PATH];
strcpy(subdir,dir);
strcat(subdir,fileinfo.name);
strcat(subdir,&\\&);
ProcessDir(subdir,dir);
if (!BrowseDir(subdir,filespec))
} while (_findnext(hFile,&fileinfo) == 0);
_findclose(hFile);
vector&string& CBrowseDir::GetDirFilenames(const char *dir,const char *filespec)
_chdir(dir);
vector&string&filename_
filename_vector.clear();
//首先查找dir中符合要求的文件
_finddata_
if ((hFile=_findfirst(filespec,&fileinfo)) != -1)
//检查是不是目录
//如果不是,则进行处理
if (!(fileinfo.attrib & _A_SUBDIR))
char filename[_MAX_PATH];
strcpy(filename,dir);
strcat(filename,fileinfo.name);
filename_vector.push_back(filename);
} while (_findnext(hFile,&fileinfo) == 0);
_findclose(hFile);
//查找dir中的子目录
//因为在处理dir中的文件时,派生类的ProcessFile有可能改变了
//当前目录,因此还要重新设置当前目录为dir。
//执行过_findfirst后,可能系统记录下了相关信息,因此改变目录
//对_findnext没有影响。
_chdir(dir);
if ((hFile=_findfirst(&*.*&,&fileinfo)) != -1)
//检查是不是目录
//如果是,再检查是不是 . 或 ..
//如果不是,进行迭代
if ((fileinfo.attrib & _A_SUBDIR))
if (strcmp(fileinfo.name,&.&) != 0 && strcmp
(fileinfo.name,&..&) != 0)
char subdir[_MAX_PATH];
strcpy(subdir,dir);
strcat(subdir,fileinfo.name);
strcat(subdir,&\\&);
ProcessDir(subdir,dir);
vector&string&tmp= GetDirFilenames(subdir,filespec);
for (vector&string&::iterator it=tmp.begin();it&tmp.end();it++)
filename_vector.push_back(*it);
} while (_findnext(hFile,&fileinfo) == 0);
_findclose(hFile);
return filename_
bool CBrowseDir::ProcessFile(const char *filename)
void CBrowseDir::ProcessDir(const char
*currentdir,const char *parentdir)
//从CBrowseDir派生出的子类,用来统计目录中的文件及子目录个数
class CStatDir:public CBrowseDir
protected:
int m_nFileC
//保存文件个数
int m_nSubdirC //保存子目录个数
//缺省构造器
CStatDir()
//初始化数据成员m_nFileCount和m_nSubdirCount
m_nFileCount=m_nSubdirCount=0;
//返回文件个数
int GetFileCount()
return m_nFileC
//返回子目录个数
int GetSubdirCount()
//因为进入初始目录时,也会调用函数ProcessDir,
//所以减1后才是真正的子目录个数。
return m_nSubdirCount-1;
protected:
//覆写虚函数ProcessFile,每调用一次,文件个数加1
virtual bool ProcessFile(const char *filename)
m_nFileCount++;
return CBrowseDir::ProcessFile(filename);
//覆写虚函数ProcessDir,每调用一次,子目录个数加1
virtual void ProcessDir
(const char *currentdir,const char *parentdir)
m_nSubdirCount++;
CBrowseDir::ProcessDir(currentdir,parentdir);
void main()
//获取目录名
char buf[256];
printf(&请输入要统计的目录名:&);
gets(buf);
//构造类对象
//设置要遍历的目录
if (!statdir.SetInitDir(buf))
puts(&目录不存在。&);
//开始遍历
vector&string&file_vec = statdir.BeginBrowseFilenames(&*.*&);
for(vector&string&::const_iterator it = file_vec.begin(); it & file_vec.end(); ++it)
std::cout&&*it&&std::
printf(&文件总数: %d\n&,file_vec.size());
system(&pause&);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5479734次
积分:45007
积分:45007
排名:第49名
原创:482篇
转载:36篇
评论:4321条
百度深度学习实验室RD,关注计算机视觉,机器学习,算法研究,人工智能, 移动互联网等学科和产业,希望结识更多同道中人。
新浪微博:
(1)(1)(1)(4)(3)(1)(7)(7)(2)(1)(1)(9)(1)(1)(5)(2)(1)(3)(4)(6)(6)(5)(4)(1)(1)(1)(6)(1)(2)(7)(6)(7)(11)(20)(12)(23)(29)(37)(37)(6)(24)(6)(1)(1)(2)(2)(1)(7)(23)(20)(32)(17)(5)(22)(58)(8)(8)有没有软件可以将一个文件夹下面所有子文件/档案 以文字方式纪录_百度知道
有没有软件可以将一个文件夹下面所有子文件/档案 以文字方式纪录
如上 最好不要乱码
只需要列出档案名称 最好有大小时间
提问者采纳
知道楼主是不是要的这种效果+F:\+F:\+F:&#92:\血战上海滩&#92:&#92:\蒙特祖玛的宝藏2\+F;罗辑思维 2013[高清版]&#92:\胥渡吧恶搞配音经典合辑\+F;视频\西游记\0001:&#92.土豆网-创圣+的大天使OP;+F;+F;视频\英雄岛\+F:\+F;老湿★KFG&#92
是 就是这种效果 但是有没有其他软件
  不然你试试
hfs {Http File Server } 添加目录 浏览器打开
点击 文件列表 可以获得这样的例子:   下的文件列表:文件修改时间
位置- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 23:51:20
/FastCopy_2.1.1_Hans_X86/FastCopy.chm 14:52:30
/FastCopy_2.1.1_Hans_X86/FastCopy.exe 15:39:19
/FastCopy_2.1.1_Hans_X86/FastCopy.ini 20:06:59
/FastCopy_2.1.1_Hans_X86/FastCopy.log 2:17:28
/FastCopy_2.1.1_Hans_X86/FastEx64.dll 2:18:36
/FastCopy_2.1.1_Hans_X86/FastExt1.dll 23:53:10
/FastCopy_2.1.1_Hans_X86/setup.exe- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -此目录下共有:7 个文件0 个文件夹所含文件总大小:761.91 K然后复制到word
删除竖块的点击量0
再把地址路径和文件大小互换下位置
需要文件修改时间久留着 不需要就ait 删除之
提问者评价
速度阿 感谢
其他类似问题
为您推荐:
文件夹的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁一个网站根目录里需要包括几个子文件?是否需要把 CSS 文件单独放在一个文件夹中,还是直接写在 head 标签里?
按投票排序
我的习惯一般是分,js,css,images,hrml,后来才知道,这样分除了代码洁癖外,还有好处,可以精确设置服务器缓存
如果你准备长期做这个站,良好的文件夹架构是后期维护性的基本保障。CSS 作为网站的版式,自然需要一个独立的文件夹。
已有帐号?
无法登录?
社交帐号登录子文件夹 是什么意思_百度知道
子文件夹 是什么意思
文件夹 是什么意思,子目录又是什么意思? 谢谢您你回答,和我门平常叫的文件夹有什么区别呀
我有更好的答案
其他类似问题
2人觉得有用
我的电影这个文件夹的子文件夹!说子文件夹的时候必须指明是哪个文件夹的子文件夹是针对某个文件夹来说的,指的是我的电影这个目录里的所有文件夹~,比说说
子文件夹就是一个文件夹里的文件夹如:一个文件夹叫123,在123里面还有个文件觉叫456,那么456就是123的子文件夹子目录也和子文件夹差不多
子文件夹,是相对根来说的。如果我们把盘符看着根目录,那么下面的文件夹都是子目录了
文件夹里面的文件夹
一个文件夹里的多个文件夹
相关专业回答
打个比方说吧,在你的软盘里软盘盘符为A:你在A:盘下的把有文件夹都是根目录。其实根目录就是根文件夹
其他类似问题
2人觉得有用
为您推荐:
子文件夹的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 outlook子文件夹提醒 的文章

 

随机推荐