0

在我的 Windows 8/RT 应用程序中,我在独立存储中使用 SQLite 数据库 ( sqlite-net ) 女巫存储。在数据库中,我有很多数据,包括文件(图像、pdf 和其他)链接。我从网络服务器获取这些链接。当我得到链接时,我想下载文件并将其存储在本地。

我的问题是:存储大量文件(100+)的最佳方式是什么?
一个重要的想法是:我需要快速组织起来找到想要的文件

我有三个想法:

  1. 仅为文件创建另一个数据库(我无法修改现有的)
  2. 在IS中创建文件夹并直接存储在这里。
  3. 创建文件列表并将其存储在 IS 中。

哪个更好/更快?或者有人有另一个很好的解决方案?

4

2 回答 2

0

100 个文件并不是一个大数字,因为您可以在单个 (NTFS) 目录中轻松存储多达 100k 个文件(或文件夹)。

如果您从网络服务器接收文件,那么问题是来源是否确保没有重复的文件名。如果不能保证这一点,我建议将数据库表从原始文件名和元数据映射到其哈希(SHA256 或类似),并使用与其哈希相对应的文件名存储文件。

然后,在使用该文件时,您可以使用 StorageFile API 使用原始文件名将其传递给用户。

超过 100k 个文件,您可以从哈希的前两个字母创建一个子文件夹结构。

无论哪种方式,将文件元数据存储在数据库中并将文件存储在目录中一直是过去对我们最有用的方法。

于 2013-05-13T08:36:17.840 回答
0

平均大小为 1MB 的 100 个文件只有 100MB。

大多数人说将二进制文件存储在数据库中是错误的,并建议将文件单独存储并且仅将文件名保留在数据库中,但我认为只要您知道自己在做什么以及为什么这样做就可以了。

将文件存储在数据库中的最大优点是您可以将文件及其属性逻辑地保存在一个地方。此外,您可以简单地复制一个文件,这将备份所有内容。

数据库还为您提供事务支持。您可能在将 BLOB 读取和写入数据库时​​遇到一些问题,但这并不是很困难。

于 2013-05-13T08:36:54.653 回答