Просто чтобы дополнить ответ Interjay
Мне пришлось включить shlobj.h
, чтобы использовать SHGetFolderPath
.
Часто вам может понадобиться прочитать файл из appdata, для этого вам нужно использовать функцию pathAppend
(для этого требуется shlwapi.h
).
#include
#pragma comment(lib,"shlwapi.lib")
#include "shlobj.h"
TCHAR szPath[MAX_PATH];
// Get path for each computer, non-user specific and non-roaming data.
if ( SUCCEEDED( SHGetFolderPath( NULL, CSIDL_COMMON_APPDATA, NULL, 0, szPath ) ) )
{
// Append product-specific path
PathAppend( szPath, _T("\\My Company\\My Product\\1.0\\") );
}
См. здесь для более подробной информации.
Я думаю, что вам нужен рефакторинг "Перенос типов".
Глядя на сообщение в блоге, объясняющее рефакторинг «Удаление посредника» в IDEA, я думаю, вы просто не можете использовать его для этого. Это просто для «замены всех вызовов методов делегирования эквивалентными прямыми вызовами».
(На мгновение я подумал, что другой рефакторинг, «Использовать интерфейс, где это возможно», может помочь, но я не смог заставить его работать в моем простом тестовом примере.)