char tempFilename[256];
wchar_t filename[512];
fprintf(stdout, "Please enter file name/path: \n");
getchar();
fgets(tempFilename, 255, stdin);
MultiByteToWideChar(CP_ACP, 0, tempFilename, -1, filename, strlen(tempFilename)*2);
if((hReadFile = CreateFile(filename, GENERIC_READ , 0, 0, OPEN_EXISTING, 0, 0)) == INVALID_HANDLE_VALUE)
{
fprintf(stdout, "File could not be opened, make sure name is under 256 chars. Error Code - %d.\n", GetLastError());
return (0);
}
Я проверил, что MultiByteToWideChar() преуспевает.CreateFile() всегда сбой
Infact Я также пробовал путь как C: \ Users \ имя_пользователя \ Desktop \ C test.txt вместо: \ Users \ имя_пользователя \ Desktop \ test.txt
я использую следующие для преобразования \ в \\
while(temp < len)
{
filename1[cntr1] = tempFilename[temp];
cntr1 += 1;
if(tempFilename[temp] == '\\')
{
filename1[cntr1] = '\\';
cntr1 += 1;
}
temp += 1;
}
это работает до \ to \\. Куда я иду не так ..?
'filename' ?? value –
Я предполагаю, что имя файла имеет CRLF. –
Я не уверен, с какой целью вы конвертируете \ в \\ '. – torak