我在将元数据添加到我在露天以编程方式创建的文档时遇到了一些麻烦。
我为此使用 dotCMIS 库。
我有以下代码:
IDictionary<string, object> properties = new Dictionary<string, object>();
properties[PropertyIds.Name] = "title.doc";
properties[PropertyIds.ObjectTypeId] = "cmis:document";
ContentStream contentStream = new ContentStream();
contentStream.FileName = "title.doc";
contentStream.MimeType = "application/msword";
contentStream.Length = bytes.Length;
contentStream.Stream = new MemoryStream(bytes);
IDocument doc = folder.CreateDocument(properties, contentStream, null);
所以我还想设置例如标题和描述以及关键字、引用等......但我不知道如何。
我尝试过这样的事情:
properties["cm:title"] = "some title";
或者
properties["cmis:title"] = "some title";
但是还是没有成功的任何想法,怎么办呢?
注意:我也尝试从文档中返回所有属性,但那些不在那里,那么我该如何设置它们呢?
我有这个:
string queryGetDoc = "SELECT * FROM cmis:document WHERE cmis:name='document.doc'";
IItemEnumerable<IQueryResult> docResults = session.Query(queryGetDoc, false);
IQueryResult docHit = docResults.FirstOrDefault();
string docId = docHit["cmis:objectId"].FirstValue.ToString();
IDocument document = session.GetObject(docId) as IDocument;
IList<IProperty> listOfProperties = document.Properties;
foreach(IProperty p in listOfProperties)
{
Console.WriteLine(p.QueryName);
}
我收到这个:
cmis:isLatestMajorVersion
cmis:contentStreamLength
cmis:contentStreamId
cmis:versionSeriesCheckedOutBy
cmis:objectTypeId
cmis:versionSeriesCheckedOutId
cmis:name
cmis:contentStreamMimeType
cmis:versionSeriesId
cmis:creationDate
cmis:changeToken
cmis:versionLabel
cmis:isLatestVersion
cmis:isVersionSeriesCheckedOut
cmis:lastModifiedBy
cmis:createdBy
cmis:checkinComment
cmis:objectId
cmis:isImmutable
cmis:isMajorVersion
cmis:baseTypeId
cmis:contentStreamFileName
cmis:lastModificationDate
这是否意味着文档上不存在其他道具?虽然在图形用户界面中我可以设置标题和描述,以及关键字和参考...
这是怎么回事,有人知道吗?