C++ 查找所有exec程序
我必须模拟存储在CD/DVD上的数据 我有三门课:C++ 查找所有exec程序,c++,exec,C++,Exec,我必须模拟存储在CD/DVD上的数据 我有三门课: CD包含一些关于电影的内容 CD包含一些关于音乐的内容 CD包含一些关于游戏的内容 对于每种类型的CD/DVD,我必须显示安装在计算机上的应用程序,这些应用程序 允许访问它(音乐/电影的不同播放器,或纸牌游戏以外的各种游戏) 我怎样才能找到所有的exe程序? 我使用下一个函数(但它只在指定的文件夹中找到) #包括 #包括 #包括 #包括 #包括 #包括 void listFile(); int main() { listFile(); 返回0;
#包括
#包括
#包括
#包括
#包括
#包括
void listFile();
int main()
{
listFile();
返回0;
}
void listFile(){
int l=0;
DIR*pDIR;
结构方向*条目;
如果(pDIR=opendir(“C:\\Users\\A\\Desktop”)){
while(条目=readdir(pDIR)){
如果(strcmp(条目->数据单元名称“.”)=0和&strcmp(条目->数据单元名称“…”)!=0)
{
l=strlen(条目->数据单元名称);
如果(输入->d_名称[l-1]='e')
如果(输入->d_名称[l-2]='x')
如果(输入->d_名称[l-3]='e')
如果(输入->d_名称[l-4]='.'))
{
字符串x;
x=输入->d_名称;
CUT必须使用OSAPI,因为标准C++库没有列出目录或文件夹及其内容的规定。
您的基本算法是对每个文件夹执行“for each”:
对于目录中的每个文件夹,根据调用搜索函数
文件夹(递归)
对于每个文件,获取文件名,并检查“.exe”
分机
我无法告诉您使用哪种API,因为您在问题中没有指定平台、操作系统和编译器(请用信息编辑您的问题).我怀疑这是正确的语言/工具。但是如果你坚持,你最好使用s.th.像boost文件系统库。这是我在学校的项目。所以…一定是一种方法。你需要检查条目
,然后,如果它包含进一步的目录,然后重复下降到那里(实现后者的提示是,将目录路径作为参数传递给您的listFile()
函数)。
#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);
}
}