【发布时间】:2018-10-16 14:44:45
【问题描述】:
在桌面桥应用程序中,我想找到该特定包的 LocalAppData(或 LocalCache)文件夹。我可以用ApplicationData class获取LocalCache文件夹路径:
using Windows.Storage;
string appData = ApplicationData.Current.LocalCacheFolder.Path;
或者,如果我使用SHGetKnownFolderPath 函数,我也可以获得相同的路径:
wchar_t* appData;
SHGetKnownFolderPath(FOLDERID_LocalAppData, KF_FLAG_FORCE_APP_DATA_REDIRECTION, NULL, &appData);
所以我的问题是:使用 SHGetKnownFolderPath() 代替 ApplicationData 类是否合适?两者在 UWP 环境中给出相同的路径。使用第一个有什么缺点/缺点吗?
【问题讨论】:
-
如果第一种方法实际上涉及对
SHGetKnownFolderPath的嵌套调用,但会产生一些额外开销,但SHGetKnownFolderPath根本不适用于 UWP 环境,我不会感到惊讶。不确定这样的限制是否适用于桌面桥应用程序。 -
调用
SHGetKnownFolderPath的一个缺点是您负责内存管理。并且由于您要求 任何 缺点,VTT 正确地指出,此 API 调用不适用于 UWP 应用程序。即使此代码当前位于桌面应用程序中,也只会使其更难移动到 Windows 运行时组件中。
标签: winapi uwp desktop-bridge