C++ 查找所有exec程序

C++ 查找所有exec程序,c++,exec,C++,Exec,我必须模拟存储在CD/DVD上的数据 我有三门课: CD包含一些关于电影的内容 CD包含一些关于音乐的内容 CD包含一些关于游戏的内容 对于每种类型的CD/DVD,我必须显示安装在计算机上的应用程序,这些应用程序 允许访问它(音乐/电影的不同播放器,或纸牌游戏以外的各种游戏) 我怎样才能找到所有的exe程序? 我使用下一个函数(但它只在指定的文件夹中找到) #包括 #包括 #包括 #包括 #包括 #包括 void listFile(); int main() { listFile(); 返回0;

我必须模拟存储在CD/DVD上的数据

我有三门课:

  • CD包含一些关于电影的内容
  • CD包含一些关于音乐的内容
  • CD包含一些关于游戏的内容
  • 对于每种类型的CD/DVD,我必须显示安装在计算机上的应用程序,这些应用程序 允许访问它(音乐/电影的不同播放器,或纸牌游戏以外的各种游戏)

    我怎样才能找到所有的exe程序? 我使用下一个函数(但它只在指定的文件夹中找到)

    #包括
    #包括
    #包括
    #包括
    #包括
    #包括
    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);
        }
    }