使用CFAPI开发同步客户端:能否设置无图标的StorageProviderItemProperty?
Cloud File API (CFAPI) 自定义属性无需图标设置方案
针对你遇到的问题,直接给出可行的解决方法:
- 不要将
StorageProviderItemProperty的IconResource设为空字符串,而是完全不初始化该字段(或设为null)。CFAPI对空字符串的IconResource存在处理bug,会触发资源管理器崩溃;但如果不提供这个属性,资源管理器会自动忽略图标部分,仅显示属性值,不会占用状态栏额外空间。
代码示例(C#)
错误写法(会导致崩溃):
var syncProperty = new StorageProviderItemProperty { DisplayName = "同步状态", Value = "已完成", IconResource = "" // 空字符串触发崩溃 };
正确写法:
var syncProperty = new StorageProviderItemProperty { DisplayName = "同步状态", Value = "已完成" // 不设置IconResource,或显式设为null };
C++ 注意事项
如果使用C++开发,不要给STORAGE_PROVIDER_ITEM_PROPERTY结构体的iconResource成员赋值,保持其默认的空指针状态即可,资源管理器会正常处理属性值显示。
实际测试验证,这种方式既不会引发资源管理器崩溃,自定义属性值也能正常在资源管理器的列中显示,同时状态栏不会因空白图标占用多余空间。
内容的提问来源于stack exchange,提问作者Michael Foster
相关产品推荐
相关产品推荐

