我需要注意以下几点:
在我的申请中,我有文件。需要一直签入和签出的文件。当我从应用程序中签出文档时,我需要向文件中添加自定义属性,以便以后在签入文档时可以识别它。
我尝试使用以下代码从DSOFile使用OleDocumentProperties,但未成功:
// Adding custom properties to file (Parameters: FileName, custom property name, value, debug: true/false
DocumentProperties.WriteDocumentProperty(filename, "dms_dossiernummer", _dossiernummer.ToString(), false);
DocumentProperties.WriteDocumentProperty(filename, "dms_zaaknaam", ReturnZaaknaam(_dossiernummer), false);
DocumentProperties.WriteDocumentProperty(filename, "dms_verantw_medew", ReturnVerantwMedew(_dossiernummer), false);
DocumentProperties.WriteDocumentProperty(filename, "dms_document_path", path, false);
DocumentProperties.WriteDocumentProperty(filename, "dms_bestandsnaam", bestandsNaam, false);
DocumentProperties.WriteDocumentProperty(filename, "dms_bestands_id", bestandId, false);
DocumentProperties.WriteDocumentProperty(filename, "dms_is_checkedout", "true", false);
DocumentProperties.WriteDocumentProperty(filename, "dms_dossier_map_id", dossierMapId, false);
DocumentProperties.WriteDocumentProperty(filename, "dms_bestand_versie_nummer", Queries.Dms.Selects.GetDocumentVersion(
Convert.ToInt32(bestandId)).ToString(), false);
DocumentProperties.WriteDocumentProperty(filename, "dms_bestands_locatie", path, false);
有谁知道将自定义文件属性添加到文件的另一种方法?
基本上,文件只是字节流和文件文件系统与之关联的一些元数据。在早期的文件系统中,元数据基本上只是文件名和一些日期戳。较新的文件系统(例如NTFS)可以选择添加额外的元数据。
在Windows资源管理器中,您可以看到许多文件类型的大量文档属性。漂亮的统一界面表明存在一些统一的属性存储。事实并非如此。Explorer Shell具有用于属性表处理程序的可扩展接口,该属性表处理程序从各种文件类型中提取此信息。有一个用于JFIF(JPEG)文件的处理程序,并且有一个用于OLE文件(旧的Office格式)和新的Office格式的处理程序。
结论是:
如果可以保证只需要处理某些文件格式,请研究在文件中添加元数据。例如,
OLE属性(如果您的所有文件均为旧版Office文档(.doc))
如果您所有的文档都是新型Office文档(.docx),请使用Open XML API
如果可以保证所有安装都将在特定的文件系统上,请调查文件系统的功能。其他答复已考虑如何使用NTFS做到这一点。
否则,您必须设计自己的数据存储。伴侣文件是一种明显的可能性;您可以将元数据存储在数据库中;或者您可以为每个目录创建一个文件,以保存该目录中文件的所有元数据。考虑对于同一文件的多个请求是否可能会遇到并发问题。使用数据库可能会使处理起来更加简单。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句