【问题标题】:Vb.Net Document StorageVb.Net 文档存储
【发布时间】:2009-07-07 21:43:38
【问题描述】:

我正在尝试将文档存储模块添加到我们的 AR 软件中。

我将提示用户将文档/图像附加到他们的帐户。然后,我会将这个文件的副本放入我们的文件夹中,以便我们可以引用它,而不必依赖他们将文件保存在原始位置。该系统不使用数据库,而是使用多个平面文件。

我正在寻找有关如何处理这些文件的指导,这些文件已附加到我们的系统。

我应该如何存储这些附件?

我在想我可以将文件复制到子目录,然后将其重命名为自动生成的数字,这样我们就不会重复。这样做的坏处是文件夹的内容会变得相当大。

谁有更好的方法?我应该创建目录并存储它们吗...?

【问题讨论】:

    标签: vb.net file-management


    【解决方案1】:

    这个系统没有使用数据库,而是使用了多个平面文件。

    这听起来像是一个多用户系统。您如何处理并发访问问题?您对此的回答将极大地影响我们在这里告诉您的任何内容。


    由于您没有对其他文件做任何特殊处理来处理并发访问,我要做的是在您的主数据文件夹下添加一个新文件夹,专门用于文档存储,并在那里写入您的用户文件。此外,您需要担心名称冲突。为了处理这个问题,我会通过将日期和用户名附加到原始文件名并获取该字符串的 md5 或 sha1 哈希来命名每个文件。然后将文件添加到您的其他数据文件中,以将哈希值映射到用户的原始文件名。

    【讨论】:

    • 不写书很难解释清楚。我们本质上是同时使用两个系统。这些文件使用为其他用户提供读/写访问权限的索引文件。我们对正在使用的文件没有任何实际问题,因为最多一次使用它的用户大约有 10 个。有什么帮助吗?
    • 我想说,到目前为止,您没有出现损坏和丢失数据的问题,您已经很幸运了。 10 个用户足以引起问题:比如说在月底的一个星期五下午,当时每个人都在试图一次性解决所有问题。
    • 还有更多内容,但老实说,我看不出这与我的问题有什么关系。我只是想知道什么是保存我导入系统的文档的好选择,而不会丢失它们的踪迹,并且仍然能够以最佳方式利用它们。
    【解决方案2】:

    鉴于您的限制(并假设总用户数量有限),我也倾向于使用“文档”文件夹 - 加上每个用户的子文件夹。每个文件名都应包含日期以防止冲突。随着时间的推移,您将不得不通过管理方式或使用用户界面处理删除旧文件或过时文件。考虑为每个用户设置最大文件数或最大字节数。您还需要处理已离职用户的文件。

    【讨论】:

      猜你喜欢
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      相关资源
      最近更新 更多