Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ SHfileoperation-使用字符串变量作为目标路径_C++_Shfileoperation - Fatal编程技术网

C++ SHfileoperation-使用字符串变量作为目标路径

C++ SHfileoperation-使用字符串变量作为目标路径,c++,shfileoperation,C++,Shfileoperation,以下代码要求用户命名文件夹。使用用户输入创建目录,例如C\test\user input\disk1。使用SHfileoperation,我希望将所有文件从A驱动器传输到字符串变量disk1T中包含的用户定义路径。程序无法编译,我收到以下错误 C:\C++\file\main.cpp | 39 |错误:无法在初始化中将“std::ucx11::string{aka std::uucx11::basic_string}”转换为“const wchar\u t*const”| 有人有什么想法吗 #i

以下代码要求用户命名文件夹。使用用户输入创建目录,例如C\test\user input\disk1。使用SHfileoperation,我希望将所有文件从A驱动器传输到字符串变量disk1T中包含的用户定义路径。程序无法编译,我收到以下错误

C:\C++\file\main.cpp | 39 |错误:无法在初始化中将“std::ucx11::string{aka std::uucx11::basic_string}”转换为“const wchar\u t*const”|

有人有什么想法吗

#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <stdio.h>

using namespace std;

int main()
{
    string input1 = "C:\\test\\";
    string input2 = "";
    string total2 = "";
    cout << "Please enter the name of the folder:\n>";
    getline(cin, input2);

    string total = input1+input2;
    string disk1 = "\\disk1";
    string disk1T = total+disk1;   //Complete path of folder e.g. C:\\test\abc\disk1

   //Create the directories
   CreateDirectory(total.c_str(),NULL);
   CreateDirectory(disk1T.c_str(),NULL);


     const wchar_t *const sourceFile= L"A:\\*.*\0";   // All files are copied from floppy disk

     const wchar_t *const outputFile= disk1T; //User defined destination e.g. C:\\test\abc\disk1. The compiler error occurs here.


    SHFILEOPSTRUCTW fileOperation;
    memset(&fileOperation, 0, sizeof(SHFILEOPSTRUCTW));

    //fileOperation.FOF_FILESONLY = true;
    fileOperation.wFunc = FO_COPY;
    fileOperation.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NOERRORUI | FOF_FILESONLY;
    fileOperation.pFrom = sourceFile;
    fileOperation.pTo = outputFile;


    int result = SHFileOperationW(&fileOperation);
    if (result != 0)
    {
        printf("SHFileOperation Failure: Error%u\n", result);
        return 1;
    }

    memset(&fileOperation, 0, sizeof(SHFILEOPSTRUCTW));

    printf("Transfer complete w\n");

   return 0;

}
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
字符串input1=“C:\\test\\”;
字符串输入2=“”;
字符串total2=“”;

cout
const wchar\u t*const outputFile=disk1T.c_str()
;谢谢您的回复。我尝试了您的建议,但在编译时收到以下错误。C:\C++\file\main.cpp | 40 |错误:无法在初始化时将“const char*”转换为“const wchar\u t*const”|那么您应该使用
wstring
而不是
string
。您的意思是将disk1T声明为ring?