Winapi 使用SHGetKnownFolderPath()而不是ApplicationData类来获取LocalAppData路径

Winapi 使用SHGetKnownFolderPath()而不是ApplicationData类来获取LocalAppData路径,winapi,uwp,desktop-bridge,Winapi,Uwp,Desktop Bridge,在桌面网桥应用程序中,我希望找到该特定包的LocalAppData(或LocalCache)文件夹。我可以通过以下方式获取LocalCache文件夹路径: 或者,如果我使用函数,我也可以得到相同的路径: wchar_t* appData; SHGetKnownFolderPath(FOLDERID_LocalAppData, KF_FLAG_FORCE_APP_DATA_REDIRECTION, NULL, &appData); 所以我的问题是:使用SHGetKnownFolderPa

在桌面网桥应用程序中,我希望找到该特定包的LocalAppData(或LocalCache)文件夹。我可以通过以下方式获取LocalCache文件夹路径:

或者,如果我使用函数,我也可以得到相同的路径:

wchar_t* appData;
SHGetKnownFolderPath(FOLDERID_LocalAppData, KF_FLAG_FORCE_APP_DATA_REDIRECTION, NULL, &appData);

所以我的问题是:使用
SHGetKnownFolderPath()
而不是ApplicationData类是否合适?在UWP环境中,两者给出相同的路径。使用第一个有什么缺点/缺点吗?

在将桌面应用程序转换为UWP应用程序之前,您可以调用任何方法。
一旦您成功地转换了它,之后,如果您想扩展它,例如:,那么您就必须使用UWP API。

如果第一种方法实际上涉及到对
SHGetKnownFolderPath
的嵌套调用,并且有一些额外的开销,但
SHGetKnownFolderPath
对于UWP环境根本不可用,我不会感到惊讶。不确定这样的限制是否适用于桌面网桥应用程序。调用
SHGetKnownFolderPath
的一个缺点是,您负责内存管理。而且,由于您询问了任何缺点,VTT正确地指出,此API调用不适用于UWP应用程序。即使此代码当前在桌面应用程序中,也会使其更难移动到Windows运行时组件中。
wchar_t* appData;
SHGetKnownFolderPath(FOLDERID_LocalAppData, KF_FLAG_FORCE_APP_DATA_REDIRECTION, NULL, &appData);