gpt4 book ai didi

c++ - 带有文本文件的 WinApi

转载 作者:行者123 更新时间:2023-11-28 02:36:56 25 4
gpt4 key购买 nike

我需要将所有文件从一个目录复制到另一个目录,但它不起作用。

   #include <cstdlib>
#include <iostream>
#include <windows.h>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
TCHAR buffer[256];
SetCurrentDirectory ("C:\\Users\\Rinat\\Desktop\\SP\\1");
GetCurrentDirectory (sizeof (buffer), buffer);
printf ("%s\n", buffer);
WIN32_FIND_DATA FindData;
HANDLE MyFile;

MyFile = FindFirstFile ("*", &FindData);
if (MyFile != INVALID_HANDLE_VALUE) {
do {
printf ("%s\n", FindData.cFileName);

CopyFile("C:\\Users\\Rinat\\Desktop\\SP\\1"+FindData.cFileName, "C:\\Users\\Rinat\\Desktop\\SP\\2\\" + FindData.cFileName, FALSE);

} while (FindNextFile (MyFile, &FindData));
FindClose (MyFile);
}

system("PAUSE");
return EXIT_SUCCESS;
}

错误是 22 C:\Users\Rinat\Desktop\SP\7.cpp invalid operands of types const char[28] and CHAR[260] to二进制 operator+

最佳答案

您不能像在 C++ 中那样将字符串指针加在一起。您需要使用一个函数(或一个类似 std::string 的类)。

do {
char chSrc[MAX_PATH], cdDst[MAX_PATH];
StringCchCopy(chSrc, MAX_PATH, "C:\\Users\\Rinat\\Desktop\\SP\\1\\");
StringCchCat(chSrc, MAX_PATH, FindData.cFileName);
StringCchCopy(chDst, MAX_PATH, "C:\\Users\\Rinat\\Desktop\\SP\\2\\");
StringCchCat(chDst, MAX_PATH, FindData.cFileName);
CopyFile(chSrc, chDst, TRUE);
} ...

使用std::string:

do {
CopyFile((std::string("C:\\Users\\Rinat\\Desktop\\SP\\1\\") + FindData.cFileName)).c_str(),
(std::string("C:\\Users\\Rinat\\Desktop\\SP\\2\\") + FindData.cFileName)).c_str(),
TRUE);
} ...

关于c++ - 带有文本文件的 WinApi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27134684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com