在我的Windows 8 / RT应用程序中,我使用SQLite DataBase(sqlite-net)存储在隔离存储中。在DataBase中,我有很多数据,包括文件(图像,pdf和其他)链接。我从Web服务器获取这些链接。当我得到链接时,我想下载文件并将其存储在本地。
我的问题是:存储大量文件(100+)的最佳方法是什么?
一个重要的想法:我需要快速组织找到所需的文件。
我有三个想法:
哪个更好/更快?或者有人有另一个很好的解决方案?
答案 0 :(得分:0)
100个文件的数量不是很大,因为您可以在单个(NTFS)目录中轻松存储多达100k个文件(或文件夹)。
如果您从网络服务器收到文件,那么问题是来源是否确保没有重复的文件名。如果无法保证,我建议将原始文件名和元数据的数据库表映射到其散列(SHA256或类似),并使用与其散列相对应的文件存储该文件。
然后,在使用该文件时,您可以使用StorageFile API使用原始文件名将其传递给用户。
超越100k文件,你可以从哈希的前两个字母创建一个子文件夹结构。
无论哪种方式,将文件元数据存储在数据库中以及目录中的文件对我们来说都是最有用的方法。
答案 1 :(得分:0)
平均大小为1MB的100个文件只有100MB。
大多数人都说在数据库中存储二进制文件是错误的,建议单独存储文件,只保留文件名在数据库中,但我认为只要你知道自己在做什么以及为什么这样做就行了。
在数据库中存储文件的一大优点是,您可以将文件与其属性逻辑地保存在一个位置。此外,您只需复制一个文件,这将备份所有内容。
数据库还为您提供交易支持。您可能在读取和写入BLOB到数据库时遇到一些问题,但这并不是很困难。