自定义文件属性

JRO*_*JRO 10 c# properties file

BOUNTY开始了,但我想在C#中做例子

我需要遵循:

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

我尝试使用以下代码使用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);
Run Code Online (Sandbox Code Playgroud)

有没有人知道将自定义文件属性添加到文件的另一种方法?

Oll*_*lly 12

什么是文件?

基本上,文件只是一个字节流和文件系统与之关联的一些元数据.在早期文件系统中,元数据基本上只是文件名和一些日期戳.像NTFS这样的新文件系统可以选择添加额外的元数据.

文档属性来自哪里?

在Windows资源管理器中,您可以看到许多文件类型的大量文档属性.漂亮的统一界面表明存在一些统一的属性存储.事实并非如此.Explorer Shell具有可扩展的属性表处理程序接口,可从各种文件类型中提取此信息.有一个JFIF(JPEG)文件的处理程序,还有OLE文件(旧的Office格式)的处理程序,以及新的Office格式.

我应该在哪里放置我的元数据?

结论是:

  • 如果您可以保证只需要处理某些文件格式,请调查文件中添加元数据.例如,

    • 如果所有文件都是旧式Office文档(.doc),则为OLE属性

    • 如果所有文档都是新式Office文档(.docx),请使用Open XML API

  • 如果可以保证所有安装都在特定文件系统上,请调查文件系统的功能.其他回复已经考虑过如何使用NTFS执行此操作.

  • 否则,您必须设计自己的数据存储.伴随文件显然是可能的; 您可以将元数据存储在数据库中; 或者您可以为每个目录创建一个文件,以保存该目录中文件的所有元数据.考虑是否可能会遇到针对同一文件的多个请求的并发问题.使用数据库可能会使处理更简单.


Bra*_*uce 7

备用数据流将允许您存储所需的任何数据.谨防; 如果将文件复制到非NTFS文件系统,额外的数据将被删除.

是应该让你开始说的一篇文章

- 编辑1/2/2014 -
以下是更多内容: http://www.codeproject.com/Articles/2670/Accessing-alternative-data-streams-of-files-on-an http:// www. dreamincode.net/forums/topic/90666-reading-and-writing-alternate-streams-in-c%23/ NTFS备用数据流 - .NET

还有一个用于从命令行创建/查看ADS:http: //www.undermyhat.org/blog/2012/05/copy-delete-or-rename-alternate-data-streams-using-only-standard-windows-命令提示的工具/