创建FileTable目录树

Create FileTable directory tree

我正在开发使用 Filestream / FileTable 作为文档存储的自定义文档管理系统。

目录结构如下: APPNameDir --> 年 --> 月 --> 文件

+ APPNameDir + 2015 + 12 File 1.pdf File 2.pdf + 2016 + 01 File 3.pdf File 4.pdf + 02 File 5.pdf File 6.pdf

我想做的是从 C# 代码调用存储过程并传递文件夹树(例如 (BooksApp/2016/03) 和 file_stream 数据。

然后,在存储过程中我想检查文件夹树是否已经存在,否则创建不存在的文件夹。

我看过这个 post 所以我可以一次创建一个文件夹,但不能同时创建多个文件夹。

我想我可以检查 2016 是否不存在,然后创建它。然后,检查 03 月是否不存在,然后创建它等等,但我担心数据库中有数百万文档时的性能,因为我想在不到 2 秒的时间内从 Web 应用程序插入文档(这是一个限制). 几天前我做了一些性能基准测试,当数据库中有 100K 个文档时,从 Web 应用程序插入一个文档需要 100 到 300 毫秒。如果我必须为每个目录查询 FileTable,然后在它们不存在时创建它们,我担心当数据库中有这么多文档时性能会下降。

您在项目中遇到过类似的需求吗?有什么想法吗?

我刚刚为此创建了一个 CLR 集成项目。 https://github.com/rhyous/Db.FileTableFramework

它具有您想要的各种函数或过程:CreateFile、CreateDirectory、DirectoryExists。在 GitHub 上,任何人当然都可以对其进行修改和改进。