【问题标题】:Attaching arbitrary data to DirectoryInfo/FileInfo?将任意数据附加到 DirectoryInfo/FileInfo?
【发布时间】:2010-08-30 02:42:52
【问题描述】:

我有一个类似于 SVN 的站点,但没有版本控制。用户可以上传和下载到项目,其中每个项目在服务器上都有一个目录(包含子目录和文件)。我想做的是将更多信息附加到文件中,例如谁上传了它,下载了多少次等等。有没有办法为 FileInfo 执行此操作,或者我应该将其存储在一个将自身与绝对路径或其他东西相关联的表中?这种方式听起来很狡猾且容易出错:\

【问题讨论】:

    标签: c# sql filesystems fileinfo


    【解决方案1】:

    可以使用 NTFS(默认的 Windows 文件系统,我假设您正在使用)将数据附加到任意文件。你会使用alternate data streams。 Microsoft 将此用于扩展元数据,例如 Office 文档中的作者和摘要信息。

    在我看来,确实,数据库方法是合理的、被广泛使用的,而且更不容易出错。除非您实际更改其内容,否则修改原始文件并不是一个好主意。

    【讨论】:

    • 谢谢。我将数据库条目“键入”到绝对路径的想法是否合适?有没有这样做的例子?
    • @George:完成此操作后,我通常至少拥有“FileID”(主键)和“文件名”。其他元数据将进入此表或相关表。在上传时,我将文件重命名为(唯一)文件 ID,在下载时,我将其重命名。我们还将文件以 100 或 500 个为一组进行分组,以使手动目录遍历更容易。
    【解决方案2】:

    正如 Michael Petrotta 所指出的,备用数据流是一个绝妙的主意。 Here's a C# tutorial with code. 确实,数据库是要走的路。 SQL Compact 和 SQLite 的影响相当小且易于使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多