介绍:
ls命令的功能是显示在当前目录下的所有文件,是最基本的命令之一。
ls命令:
http://baike.baidu.com/link?url=2edNUDc5em0OmD7CugYQmgnEedFRcNioIKX8oD_32Md8zq_osLtcEKWMhrNaCxEjwaRafa6noT02ABoRxgrGL_
我们可以类似地通过使用dirent类和dirent结构体获取当前目录下的所有文件,将所有隐藏文件删去,将剩下文件排序输出即可。
dirent类:
http://baike.baidu.com/link?url=VlQO8NymyVUo8OD29HSusWPU51PY2F6KWV1JPG8hvW6uqOVdAWtqfYwHlH_gVELaCBZXY7i8_DmeycnHv7o2Qq
代码:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <sys/types.h>
#include <algorithm>
#include <string.h>
#include <string>
using namespace std;
bool cmp(string s1, string s2)
{
return s1<s2;
}
int main()
{
//struct _dirstream typedef struct _dirstream DTR;
char s[100];
string res[1000];
DIR *dir;
struct dirent *rent;//struct
dir = opendir(".");
int cnt=0;
while((rent=readdir(dir)))//利用dirent中的readdir来获取文件
{
strcpy(s,rent->d_name);//获取文件名
if (s[0]!='.' && s)
{
res[cnt++]=s;
}
}
sort(res,res+cnt,cmp);//排序输出文件
for(int i=0; i<cnt; i++)
cout<<res[i]<<" ";
puts("");
closedir(dir);
return 0;
}
实现结果:
从结果来看ls文件的运行结果与ls命令实现的效果相类似。