C++ 如何使用C++;

C++ 如何使用C++;,c++,windows,visual-studio,copy-paste,C++,Windows,Visual Studio,Copy Paste,目前,我只能复制和粘贴一个扩展名为.jpg的文件。但是,为了安全起见,我需要确保.jpeg、.JPG和.jpeg也被复制和粘贴 下面是我粘贴一个扩展名为.jpg的文件的代码: CFileStatus status; CString strFileName = _T("Test2.jpg"); CString strFilePath = m_strImagePath + _T("\\") + strFileName; CString strCopyPat

目前,我只能复制和粘贴一个扩展名为.jpg的文件。但是,为了安全起见,我需要确保.jpeg、.JPG和.jpeg也被复制和粘贴

下面是我粘贴一个扩展名为.jpg的文件的代码:

CFileStatus status;
CString strFileName = _T("Test2.jpg");
CString strFilePath = m_strImagePath + _T("\\") + strFileName;                      
CString strCopyPath = m_strCopyPath + _T("\\") + strFileName;
if(CFile::GetStatus(strFilePath, status))
{
    CopyFile(strFilePath, strCopyPath, FALSE);
}
因此,如果给出示例,我从中复制的文件夹如下所示:

不管文件名是什么,只要它有这四个扩展名(.jpg、.jpg、.jpg、.jpg、.jpg),就应该复制并粘贴它


那么,如何指定4种不同的扩展?是否有正则表达式来执行此操作或添加其他符号?提前谢谢你

下面是一个演示,介绍如何在文件夹中查找具有特殊扩展名的文件:

#include"pch.h"
#include<iostream>
#include<io.h>
#include<vector>
#include<string>
#include <Windows.h>

int get_files(std::string fileFolderPath, std::string fileExtension, std::vector<std::string>& file)
{
    std::string fileFolder = fileFolderPath + "\\*" + fileExtension;
    std::string fileName;
    struct _finddata_t fileInfo;
    long long findResult = _findfirst(fileFolder.c_str(), &fileInfo);
    if (findResult == -1)
    {
        _findclose(findResult);
        return 0;
    }
    bool flag = 0;



    do
    {
        fileName = fileFolderPath + "\\" + fileInfo.name;
        if (fileInfo.attrib == _A_ARCH)
        {
            file.push_back(fileName);
        }
    } while (_findnext(findResult, &fileInfo) == 0);



    _findclose(findResult);
}



int main()
{
    //Folder Path
    std::string fileFolderPath = "D:";




    std::cout << "Output all files in jpeg/JPEG format in the current directory" << std::endl;
    std::vector<std::string> jpeg_files;
    std::string fileExtension_jpeg = ".jpeg";
    get_files(fileFolderPath, fileExtension_jpeg, jpeg_files);



    for (int i = 0; i < jpeg_files.size(); i++)
    {
        std::cout << jpeg_files[i] << std::endl;
    }



    std::cout << "\nOutput all files in jpg/JPG format in the current directory" << std::endl;
    std::vector<std::string> jpg_files;
    std::string fileExtension_jpg = ".jpg";
    get_files(fileFolderPath, fileExtension_jpg, jpg_files);



    for (int i = 0; i < jpg_files.size(); i++)
    {
        std::cout << jpg_files[i] << std::endl;
    }
return 0;
}
#包括“pch.h”
#包括
#包括
#包括
#包括
#包括
int get_文件(std::string fileFolderPath、std::string fileExtension、std::vector和file)
{
std::string fileFolder=fileFolderPath+“\\*”+文件扩展名;
std::字符串文件名;
结构文件信息;
long long findResult=\u findfirst(fileFolder.c\u str(),&fileInfo);
如果(findResult==-1)
{
_findclose(findResult);
返回0;
}
布尔标志=0;
做
{
fileName=fileFolderPath+“\\”+fileInfo.name;
如果(fileInfo.attrib==\u A\u ARCH)
{
文件。推回(文件名);
}
}while(_findnext(findResult,&fileInfo)==0);
_findclose(findResult);
}
int main()
{
//文件夹路径
std::string fileFolderPath=“D:”;

std::难道你完全不清楚你想做什么。你的代码中有“Test2.jpg”,你想复制“Test3.jpg”?您传递了一个从未声明或初始化的变量strRecipe?您调用了一个未定义的函数IsRecipeImageList。您能提供一个完整的最小工作示例吗?您想对代码做些什么?我已经去掉了strRecipe上的额外函数。Test2只是我复制一个文件的一个示例。我已经ted不管文件名是什么,只要它们满足这4个扩展名,我就需要复制它们。你可能想搜索文件。
在VC中仍然是实验性的,我想。看起来你在使用MFC:use
CFileFind
@ZDF我确实使用了CFileFind来查找所有文件。通过几个if语句,我得到了整理带扩展名的文件是我想要的。所以,我现在很好。谢谢!你的肯定能用,但我已经解决了这个问题。谢谢!