SHfileoperation — Использование строковой переменной в качестве пути назначения.

Следующий код просит пользователя назвать папку. Каталог создается с использованием пользовательского ввода, например C \ test \ user input \ disk1. Используя SHfileoperation, я хочу перенести все файлы с диска A в пользовательский путь, содержащийся в строковой переменной disk1T. Программа не скомпилируется, и я получаю следующую ошибку.

C: \ C ++ \ file \ main.cpp | 39 | ошибка: невозможно преобразовать ‘std :: __ cxx11 :: string {aka std :: __ cxx11 :: basic_string}’ в ‘const wchar_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;

}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]