Я создаю службу Windows, которая копирует файл на внешний флэш-накопитель, используя CopyFileW
. Все работает, как и ожидалось, но проблема в том, что Windows копирует файл на флэш-накопитель, и он отображается как тип «Файл», и его нельзя ни удалить, ни скопировать, ни переместить, ни переименовать.
Я попытался GetLastError
, но ошибок не было, т.е. CopyFile
вернул true
.
Работает, если файл назначения находится на диске C
. Вот код, отвечающий за копирование файла:
LPWSTR filename = PathFindFileNameW(file.first.c_str());
LPWSTR mediaFilePath = new WCHAR[1000];
wcscpy_s(mediaFilePath, 255, lpdbv->dbcc_name);
wcscat_s(mediaFilePath, 255, L"\\");
wcscat_s(mediaFilePath, 255, filename);
bool copied = CopyFileW(file.first.c_str(), mediaFilePath, false);
if (!copied) {
logToFile(L"Couldn't copy file, error " + GetLastError());
}