Мой исполняемый файл встроен C ++ / WinAPI проверим наличие файла в той же папке, и я использую PathFileExists
для этого. Когда я запускаю его на обычном компьютере, он находит файл, но когда я публикую исполняемый файл на RemoteApp и я бегу от Веб доступ файл не найден. Чего бы мне не хватало?
// This is the file I want to find (located in the same directory as the EXE)
wstring myfile = L"myfile.conf";
BOOL abspath = FALSE;
// Trying to get the absolute path first
DWORD nBufferLength = MAX_PATH;
wchar_t szCurrentDirectory[MAX_PATH + 1];
if (GetCurrentDirectory(nBufferLength, szCurrentDirectory) == 0) {
szCurrentDirectory[MAX_PATH + 1] = '\0';
} else {
abspath = true;
}
if (abspath) {
// Create the absolute path to the file
myfile = L'\\' + myfile;
myfile = szCurrentDirectory + myfile ;
MessageBox(hWnd, ConvertToUNC(myfile).c_str(), L"Absolute Path", MB_ICONINFORMATION);
} else {
// Get the UNC path
myfile = ConvertToUNC(myfile);
MessageBox(hWnd, myfile.c_str(), L"UNC Path", MB_ICONINFORMATION);
}
// Try to find file
int retval = PathFileExists(myfile.c_str());
if (retval == 1) {
// Do something
} else {
// File not found
}
ConvertToUNC
функция скопирована из Вот.
Я вижу, что, хотя исполняемый файл лежит где-то еще, абсолютный путь считается C:\Windows
, Я действительно не знаю, что вызывает это. Сервер — Windows 2012 R2, и, как я уже сказал, приложения запускаются через RemoteApp Web Access. Возвращенный UNC-путь — это просто имя файла (без тома или папки)
Задача ещё не решена.
Других решений пока нет …