如何获取目录下的文件数

如题所述

ls-l/ls-aldu-b/du-klinux的du命令1.简介  du(showdiskuseage)查看磁盘使用情况2.语法  du[-abcDhHklmsSx][-L][-X][--block-size][--exclude=][--max-depth=][--help][--version][目录或文件]常用参数:-a或-all为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。-b或-bytes显示目录或文件大小时,以byte为单位。-c或–total除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。-D或–dereference-args显示指定符号连接的源文件大小。-h或–human-readable以K,M,G为单位,提高信息的可读性。-H或–si与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。-k或–kilobytes以1024bytes为单位。-l或–count-links重复计算硬件连接的文件。-L或–dereference显示选项中所指定符号连接的源文件大小。-m或–megabytes以1MB为单位。-s或–summarize仅显示总计,即当前目录的大小。-S或–separate-dirs显示每个目录的大小时,并不含其子目录的大小。-x或–one-file-xystem以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。-X或–exclude-from=在指定目录或文件。–exclude=略过指定的目录或文件。–max-depth=超过指定层数的目录后,予以忽略。–help显示帮助。–version显示版本信息。3.du命令使用示例  1>要显示一个目录树及其每个子树的磁盘使用情况du/home/linux这在/home/linux目录及其每个子目录中显示了磁盘块数。2>要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况du-k/home/linux这在/home/linux目录及其每个子目录中显示了1024字节磁盘块数。3>以MB为单位显示一个目录树及其每个子树的磁盘使用情况du-m/home/linux这在/home/linux目录及其每个子目录中显示了MB磁盘块数。4>以GB为单位显示一个目录树及其每个子树的磁盘使用情况du-g/home/linux这在/home/linux目录及其每个子目录中显示了GB磁盘块数。5>查看当前目录下所有目录以及子目录的大小:du-h.“.”代表当前目录下。也可以换成一个明确的路径-h表示用K、M、G的人性化形式显示6>查看当前目录下user目录的大小,并不想看其他目录以及其子目录:du-shuser-s表示总结的意思,即只列出一个总结的值du-h–max-depth=0user–max-depth=n表示只深入到第n层目录,此处设置为0,即表示不深入到子目录。7>列出user目录及其子目录下所有目录和文件的大小:du-ahuser-a表示包括目录和文件8>列出当前目录中的目录名不包括xyz字符串的目录的大小:du-h–exclude=’*xyz*’9>想在一个屏幕下列出的关于user目录及子目录大小的信息:du-0huser-0(杠零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息。10>只显示一个目录树的全部磁盘使用情况du-s/home/linux-------------------------------------------------------------------------------------------------------------------------------------------------------------------LinuxLS命令详细介绍lsls命令可以说是linux下最常用的命令之一。它有众多的选项,其中有很多是很有用的,你是否熟悉呢?下面列出了ls命令的绝大多数选项。-a列出目录下的所有文件,包括以.开头的隐含文件。-b把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。-c输出文件的i节点的修改时间,并以此排序。-d将目录象文件一样显示,而不是显示其下的文件。-e输出时间的全部信息,而不是输出简略信息。-f-U对输出的文件不排序。-g无用。-i输出文件的i节点的索引信息。-k以k字节的形式表示文件的大小。-l列出文件的详细信息。-m横向输出文件名,并以“,”作分格符。-n用?值?UID,GID代替名称。-o显示文件的除组信息外的详细信息。-p-F在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。-q用?代替不可输出的字符。-r对目录反向排序。-s在每个文件名后输出该文件的大小。-t以时间排序。-u以文件上次被访问的时间排序。-x按列输出,横向排序。-A显示除“.”和“..”外的所有文件。-B不输出以“~”结尾的备份文件。-C按列输出,纵向排序。-G输出文件的组的信息。-L列出链接文件名而不是链接到的文件。-N不限制文件长度。-Q把输出的文件名用双引号括起来。-R列出所有子目录下的文件。-S以文件大小排序。-X以文件的扩展名(最后一个.后的字符)排序。-1一行只输出一个文件。--color=no不显示彩色文件名--help在标准输出上显示帮助信息。--version在标准输出上输出版本信息并退出。只列出子目录1.ls-F|grep/$或者aliassub="ls-F|grep/$"(linux)2.ls-l|grep"^d"或者ls-lL|grep"^d"(Solaris)计算当前目录下的文件数和目录数下面命令可以分别计算当前目录下的文件和目录个数:#ls-l*|grep"^-"|wc-l----tocountfiles#ls-l*|grep"^d"|wc-l-----tocountdir显示彩色目录列表打开/etc/bashrc,加入如下一行:aliasls="ls--color"下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了,其中颜色的含义如下:1.蓝色-->目录2.绿色-->可执行文件3.红色-->压缩文件4.浅蓝色-->链接文件5.灰色-->其他文件ls-tl--time-style=full-isosshdls-ctl--time-style=long-iso-------------------------------------------------------------------------------------------------------------------------------------------------------------------附:du-sh查看当前文件夹大小du-sh*|sort-n统计当前文件夹(目录)大小,并按文件大小排序附送:du-skfilename查看指定文件大小Linux:ls以K、M、G为单位查看文件大小Linux:ls以K、M、G为单位查看文件大小。#manls……-h,--human-readableprintsizesinhumanreadableformat(e.g.,1K234M2G)……#lscuss.warnohup.out#ls-ltotal30372-rw-r--r--1rootroot31051909May2410:07cuss.war-rw-------1rootroot0Mar2013:52nohup.out#ls-lhtotal30M-rw-r--r--1rootroot30MMay2410:07cuss.war-rw-------1rootroot0Mar2013:52nohup.out#ll-htotal30M-rw-r--r--1rootroot30MMay2410:07cuss.war-rw-------1rootroot0Mar2013:52nohup.out[root@localhostrice_f2]#ls-lhs总计28G15G-rw-r--r--1rootroot15G06-0414:35all.txt8.0K-rwx--x--x1rootroot63206-0415:57hash.pl371M-rw-r--r--1rootroot371M06-0318:061.fa360M-rw-r--r--1rootroot359M06-0318:072.fna8.0K
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-22
递归获取本文件夹(包括子文件夹)中的文件:

int CountDirectory(CString path)
{
int count = 0;
CFileFind finder;
BOOL working = finder.FindFile(path + "\\*.*");
while (working)
{
working = finder.FindNextFile();
if (finder.IsDots())
continue;
if (finder.IsDirectory())
count += CountDirectory(finder.GetFilePath());
else
count++;
}本回答被网友采纳
相似回答