我目前正在开发一个AutoCAD插件,允许用户与文档版本控制应用程序进行交互,为了在远程存储库和本地计算机之间同步文件,我计划使用自定义文件属性。最初下载文件时将设置属性,然后只要文件保留在用户的本地驱动器上,就会保留该属性。我对AutoCAD特定的解决方案并不感兴趣,因为我的插件将处理AutoCAD绘图以外的文件(文本文件,图像文件等)。因此,我想要一个可以处理尽可能多的潜在文件类型的库。
当在C#中搜索如何实现这种事情时,我几乎立即遇到了DSOFile库。我读到的所有内容都说它是为MS Office设计的,但它应该适用于任何文件,只要文件系统是NTFS(至少这是我的理解)。我在文本上设置自定义属性没有问题,例如纯文本文档(.txt),AutoCAD图形(.dwg)和图像(.jpg,.tif等)。但是,我注意到,一旦保存了这些文件,自定义属性就会被删除。我看到自定义属性的唯一情况是在保存后保留,在MS Office文档中。我认为这个问题与我用来保存文件的应用程序(AutoCAD,MS Paint,记事本等)有关,但我无法100%肯定。在我决定使用DSOFile以外的其他解决方案之前,我想看看SO上是否有人对此问题有所了解。
我使用自己的代码测试并使用DSOFile附带的演示,并且两次都看到相同的结果。保存除MS Office(Word和Excel)文档之外的任何类型的文件后,自定义属性被清除。
这是一个类似于我将用于添加新自定义属性的代码的示例...
var docProperties = new OleDocumentProperties();
docProperties.Open("myfile.txt", false, dsoFileOpenOptions.dsoOptionDefault);
try
{
object value = "some value";
docProperties.CustomProperties.Add("MyCustomProp", ref value);
}
finally
{
docProperties.Close(true); // save and close
}
答案 0 :(得分:0)
这可能为时已晚,但我已经使用了一些或Autodesk Revit RFA文件以及PDF文件,它工作正常。但是,当RFA打开时,您无法编辑它们。
你有没有调用docProperties.Save()?