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

标签 c# .net file-io filesystems

<分区>

Possible Duplicate:
Can one add custom properties to NTFS folders?

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

我研究了以下解决方案,但没有一个能奏效:

  • Shell32.dll:只出现允许读取属性。我找不到任何关于如何使用 Shell32 编写属性的信息。
  • DSOFile:应用程序需要独立,我也担心 future 操作系统的兼容性。
  • NTFS 备用数据流 (ADS):如果文件被移动或复制,许多工具不会复制此信息,我担心 future 的兼容性。

是否有其他方法(COM 等)将自定义属性附加到 .NET 中的文本文件?

最佳答案

我能想到的只有三种方法:

  1. ADS - 但是您已经忽略了它。
  2. 将其添加到文件名中。
  3. 将其添加到文件的开头或结尾。

如果它是一个应用程序控制的文件,可以四处移动,那么最好的选择是第二个。当然,这意味着文件可能会在重命名操作中“丢失”该信息。

第三个选项有点不确定。如果您可以控制文件的查看方式,那么您可以简单地给它一个不同的扩展名并将您的数据写入它的顶部。当需要打开它时,您可以“提取”真实文件并相应地打开。我认为这要复杂得多...但它将包含您的数据并且不太可能被劫持。

关于c# - 在 C# 中创建自定义文件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9071661/

相关文章:

c - 使用 WriteFile 将 UTF-8 字符写入标准输出时出现问题

c++ - 如何快速保存大文件中的小改动?

c# - 调用异步方法的两种方式。 C#

c# - 我们可以解码 Guid 以找出它是在何时何地生成的吗?

java - 为什么从文件输入流读取时必须转换为字节?

c# - 如何检查FTP目录是否存在

.net - ASP.NET 网站的选项卡

c# - 没有声明的 Lambda 表达式?

c# - 快速将 Guid[] 序列化为二进制以存储在 C# AppFabric 中

c# - 为什么我的 XmlDocument.Save() 失败并返回 "Resource in use by another process"?