【发布时间】:2014-02-27 04:47:15
【问题描述】:
我必须模拟存储在 CD/DVD 上的数据。
我有 3 个课程:
- CD 包含一些关于电影的内容
- CD 包含一些关于音乐的内容
- CD 包含一些关于游戏的内容
对于每种类型的 CD/DVD,我必须显示计算机上安装的应用程序, 允许访问它(不同玩家的音乐/电影,或各种单人游戏)。
我怎样才能找到所有的 exe 程序? 我使用下一个函数(但它只在指定文件夹中找到)。
#include<stdio.h>
#include<cstdlib>
#include<iostream>
#include<string.h>
#include<fstream>
#include<dirent.h>
void listFile();
int main()
{
listFile();
return 0;
}
void listFile(){
int l=0;
DIR *pDIR;
struct dirent *entry;
if( pDIR=opendir("C:\\Users\\A\\Desktop") ){
while(entry = readdir(pDIR)){
if( strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0 )
{
l=strlen(entry->d_name);
if(entry->d_name[l-1]=='e')
if(entry->d_name[l-2]=='x')
if(entry->d_name[l-3]=='e')
if(entry->d_name[l-4]=='.')
{
string x;
x=entry->d_name;
cout<<x<<endl;
}
}
}
closedir(pDIR);
}
}
【问题讨论】:
-
我怀疑c++ 是否适合执行此操作。但是如果你坚持,你最好还是使用 s.th。比如 boost 文件系统库。
-
这是我的学校项目。所以……一定是一种方式。
-
你需要检查
entry然后,如果它包含另一个目录,然后递归地下降到那里(实现后者的提示,将目录路径作为参数传递给你的listFile()函数)。我会把剩下的留给你来解决你的家庭作业。