Но хочется взять один раз и на века
разве MS раздает винду
А ПК сейчас личный домашний, потому и не брезгую сборками.
Официальный дистрибутив сейчас надо еще и постараться найти
неужели какая-то одна инструкция обеспечивает прям полную защиту от хакинга с буфером.
пишу свою реализацию ftp-сервера
std::ifstream files(iconPath);
т.к. files уже открыл 1 раз файл, а icon.loadFromFile - будет открывать уже открытый файл второй раз. Не уверен, но возможно files открывает в эксклюзивном режиме по умолчанию, что, конечно, препятствует повторному открытию файла..
Если files вам почему то дорог, то вынесите проверку доступности файла в отдельную функцию, тогда по выходе из функции files выйдет из области видимости и закроет файл.
Кстати, думаю, что sfml сама в состоянии проверить доступен ли файл, и если не доступен вернет какой-то код ошибки, так что files в принципе выглядит лишним.
Еще добавлю - наверняка от icon можно получить более детальную информацию о причине ошибки (errno возможно или какой-то свой механизм, смотрите документацию). Она обычно известна, т.к. все библиотечные функции работы с файлами сводятся к системным open/read/write/close, а они умеют возвращать причину ошибки, а не абстрактное "Unable to open file". Из кода ошибки должно быть понятно, как исправить ситуацию.