vsto - 如何在 VSTO 插件的 Outlook 文件夹名称中检测“仅限此计算机”标志?
问题描述
从 Outlook 2013 及更高版本开始,Outlook 有时(如果是 .OST 文件)可能会在文件夹名称后附加“(仅限此计算机)”后缀。在其他情况下(.PST 文件),这不会发生。因此,根据特定情况,对于 Outlook 的本地化版本,文件夹名称可以是“某个文件夹”或“某个文件夹(仅限此计算机)”或“某个文件夹(谁知道还有什么)”。
有没有办法在没有这个后缀的情况下获取文件夹名称(这样我总是会得到,比如说,“某个文件夹”,不管这个后缀是否存在于文件夹名称中?目前我没有看到任何属性在 Outlook.Folder 对象中,它将返回该短名称。
我可以想到一种解决方法,例如获取默认的联系人文件夹名称,检查它是否以“(某事)”结尾,然后从文件夹名称中删除“(某事)”,但这对我来说似乎不是一个优雅的解决方案。
另一种方法可能是创建一个临时文件夹并检查其名称是否与我提供的不同。如果它们不同,则该差异就是后缀。但是,仅仅为此创建/删除文件夹看起来也不优雅。
在 MFCMapi 工具中,我也无法在名为“联系人(仅限此计算机)”文件夹的 MAPI 属性中的任何位置找到“联系人”,因此它似乎不仅仅是 Outlook OOM 限制。
确实,如果没有该后缀,就无法以编程方式获取文件夹名称,我应该只依靠我的(丑陋的)解决方法吗?
解决方案
不要依赖文件夹名称。除了 IMAP4 存储具有“(仅限此计算机)”后缀外,名称还可以本地化。
始终使用Namespace.GetDefaultFolder
和Store.GetDefaultFolder
。
推荐阅读
- java - 尝试创建一个返回二维数组的函数,并在函数内部使用 switch。获取“重复的局部变量
“ 警告 - solidity - 是否从另一个合同部署了可能的调用公共视图返回?
- amazon-redshift - xid 值在红移中是否唯一
- python - 传递给变量的日期时间被视为字符串 - Python
- angular -
: ERROR 错误: 没有未指定名称属性的表单控件的值访问器 - javascript - 如何在 HTML 中制作 html 代码示例?
- catboost - CatBoostError:c:/program files(x86)/go agent/pipelines/buildmaster/catboost.git/library/cpp/json/writer/json_value.cpp:457:不是字符串
- python - FileNotFoundError 与 matplotlib 和 apscheduler
- android - Android kotlin mvvm 更新实时数据
- tf.keras - 具有云 mnist 数据的 Keras PointNet 自动编码器