自定义文件属性 - c#

我需要注意以下几点:

在我的申请中,我有文件。需要一直签入和签出的文档。当我从应用程序中签出文档时,我需要将自定义属性添加到文件中,以便以后在签入文档时可以识别它。

我尝试使用以下代码从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具有用于Property Sheet Handlers的可扩展接口,该接口可从各种文件类型中提取此信息。有一个JFIF (JPEG) files处理程序,并且有OLE文件(旧的Office格式)和新的Office格式的处理程序。

我应该将元数据放在哪里?

结论是:

如果可以保证只需要处理某些文件格式,请研究在文件中添加元数据。例如,

OLE属性(如果所有文件均为旧版Office文档(.doc))
如果您所有的文档都是新型Office文档(.docx),请使用Open XML API

如果可以保证所有安装都将在特定的文件系统上,请研究文件系统的功能。其他答复已考虑如何使用NTFS做到这一点。
否则,您必须设计自己的数据存储。伴侣文件是很明显的可能性;您可以将元数据存储在数据库中;或者您可以为每个目录创建一个文件,以保存该目录中文件的所有元数据。考虑是否可能在同一文件的多个请求中遇到并发问题。使用数据库可能会使处理起来更加简单。

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

获取PHP中函数调用者的__FILE__常量 - php

我知道PHP中的__FILE__魔术常数将变成当前执行文件的完整路径和文件名。但是,有什么方法可以使函数的调用文件获得相同的信息吗?例如://foo.php: include "bar.php"; call_it(); //bar.php function call_it() { echo "Calling file: …

File.Exists是否不能在UWP项目中使用? - c#

File.Exists(filePath);在控制台应用程序中可以完美地工作,但是当我在uwp中执行相同的操作时,它不会检测到文件。我试图在各种方法上设置断点,并尝试任何可以为我提供有关此问题的信息的方法,但是无论我尝试什么,我都一无所获。来自UWP应用的代码: string path = @"C:\Users\Name\Desktop\image…

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…