TCHAR path[MAX_PATH];
TCHAR toPath[MAX_PATH];
std::wcin >> path;
std::wcin >> toPath;
SHFILEOPSTRUCT fos;
ZeroMemory(&fos, sizeof(fos));
fos.wFunc = FO_MOVE;
fos.pFrom = path;
fos.pTo = toPath;
fos.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NOERRORUI | FOF_SILENT;
if (SHFileOperation(&fos))
std::cout << "The directory is moved successfully!" << std::endl;
else
std::cout << "[ERROR] The directory is not moved!" << std::endl;
Входные данные:
C:\\new
C:\\newgovno\\
C:\new
C:\newgovno\
Не копируется папка.
В документации указано, что члены структуры SHFILEOPSTRUCT
pFrom
и pTo
должны в конце строки содержать двойной нуль-терминатор.
Т.е. к введенной строке вам следует добавлять еще один нулевой символ ('\0'
).
Решение будет выглядеть следующим образом:
// ...
TCHAR path[MAX_PATH];
TCHAR toPath[MAX_PATH];
std::wcin >> path;
std::wcin >> toPath;
path[lstrlen(path) + 1] = '\0';
path[lstrlen(path) + 1] = '\0';
SHFILEOPSTRUCT fos;
ZeroMemory(&fos, sizeof(fos));
fos.wFunc = FO_MOVE;
fos.pFrom = path;
fos.pTo = toPath;
fos.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NOERRORUI | FOF_SILENT;
// еще один момент
// функция SHFileOperation возвращает 0 в случае успешного выполнения
// и ненулевое значение если операция закончилась неуспешно
if (!SHFileOperation(&fos))
std::cout << "good\n";
else
std::cout << "bad\n";
// ...
Еще стоит заметить, что в качестве разделителя в пути файловой системы api принимает только \
, но не /
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Улитка ползет по вертикальному шесту высотой H метров, поднимаясь за день на A метров, а за ночь спускаясь на B метровНа какой день улитка доползет...
Есть ли что-то "опасное" в том, что два потока будут одновременно инкрементировать одну переменную? Я имею ввиду, может ли произойти такое,...
Когда-то это казалось недостижимымНо пришло время, и даже PVS стал на это ругаться (при сборке 32-битности, само собой - а необходимость в этом...
У меня spring mvcЯ хожу в базу (PostgreSQL) вот так вот : select array_to_json(array_agg(t1)) from shops as t1