在C#中创建自定义文件属性

时间:2012-01-30 22:18:42

标签: c# .net file-io filesystems

  

可能重复:
  Can one add custom properties to NTFS folders?

我正在尝试在C#中编写一个独立的可执行文件,它将值附加到文本文件(不更改文件的内容),以后可以阅读。

我已经研究了以下解决方案,但没有一个能够正常工作:

  • Shell32.dll :仅显示允许读取属性。我找不到有关如何使用Shell32写属性的任何信息。
  • DSOFile :应用需要独立,我也关注未来的操作系统兼容性。
  • NTFS备用数据流(ADS):如果移动或复制文件,许多工具都不会复制此信息,我担心将来的兼容性。

是否有另一种方法(COM,Etc ..)将自定义属性附加到.NET中的文本文件中?

1 个答案:

答案 0 :(得分:3)

我能想到的唯一三种方式:

  1. ADS - 但是你已经解雇了这个。
  2. 将其添加到文件名中。
  3. 将其添加到文件的开头或结尾。
  4. 如果它是一个可以移动的应用程序控制文件,那么你最好的选择是第二个。当然,这意味着文件可能会在重命名操作中“丢失”该信息。

    第三种选择有点不确定。如果您可以控制文件的查看方式,那么您只需给它一个不同的扩展名并将数据写入其中。当需要打开时,您可以“提取”真实文件并相应地打开。我认为这样做更复杂......但是它会包含你的数据并且不太可能被提升。