Как читать файл удаленно? - PullRequest
0 голосов
/ 25 марта 2020

У меня есть такой метод для чтения файла по пути

void test_read_file(std::string const & fileName)
{
    std::ifstream file(fileName);
    if (!file.is_open())
    {
        std::cout << "LoadFromFile FAILED to load: " << fileName << std::endl;   <--- this line
    }

    ...
}

И этот метод хорошо работает, если я передаю путь C:\\..., но если я передаю что-то подобное \\\\my_remote_drive\\my_user\\...., это не так работать, и я пришел к линии, которую я отметил выше.

Это похоже на отсутствие разрешения или что-то вроде этого ...

Что я делаю не так?

1 Ответ

0 голосов
/ 30 марта 2020

Сначала необходимо установить соединение с сетевым ресурсом, используя WNetAddConnection2A (аналогичные API: NetUseAdd, NPAddConnection и т. Д. c.) И эта функция также может перенаправлять локальное устройство на сетевой ресурс.

lpRemoteName:

Примером общего ресурса может быть следующий: \192.168.1.1\share

NETRESOURCE nr = {0};
nr.dwType = RESOURCETYPE_ANY;
nr.lpLocalName = NULL; //does not assign a drive.
nr.lpRemoteName = "\\192.168.1.1\\share";

DWORD ret = WNetAddConnection2 (&nr, NULL, NULL, CONNECT_TEMPORARY);

Чтобы назначить диск для общего ресурса: Вы можете обратиться к Назначение диска для общего ресурса

...