【问题标题】:how to query a folder structure (files, directories)如何查询文件夹结构(文件、目录)
【发布时间】:2010-11-15 05:53:06
【问题描述】:

我需要查询文件夹结构。换句话说,我需要能够通过 SQL 访问目录结构。我在想应该有一些 OLE DB 提供程序或一些 ODBC 驱动程序用于此目的。我的朋友说谷歌“文件夹监控”,但我找不到任何东西 现在我在命令提示符下执行 dir>somefile 并将结果文本文件导入数据库,但它有点“非实时”。我需要像资源管理器一样实时访问它。 有办法吗? 谢谢

【问题讨论】:

    标签: sql odbc oledb fat


    【解决方案1】:

    为什么需要专门的 SQL 来查询文件和文件夹?您尝试进行什么样的查询,您对它的性能要求是什么(一方面,您应该意识到在缺乏索引的情况下查询性能不会取决于查询语言)。

    【讨论】:

    • 感谢您的回复,我不需要专门的 SQL 来执行此操作。我在网络中有一个文件夹,许多人在其中转储许多文件,主要是图像。我需要将该文件夹作为数据库来查询并了解那里当前可用的文件。不要期望很大的性能,因为文件夹非常大,甚至操作系统打开它几分钟
    • 澄清一下:你有一个文件夹,还是一个文件夹树(所以你需要扫描所有子文件夹);以及您需要能够查询哪些文件属性 - 文件名/大小/日期,或嵌入文件本身的一些元数据(例如 MP3 标签)?
    • 它是一个文件夹(但我不想有这个限制),现在我只需要查询文件名,但我希望我也可以查询元数据,例如图片的 EXIFF 字段。
    • 此时需要澄清您使用的操作系统、平台和语言。在任何情况下,如果您想查询诸如 EXIFF 标签之类的内容,您就必须使用自己的阅读器。我不知道有任何现有的解决方案可以让您在不先建立索引的情况下查询这样的元数据。
    • 我放弃了元数据的想法,只愿意查询文件名。如果有任何操作系统的解决方案,我将安装该操作系统并将其指向该网络文件夹。所以操作系统并不重要,可以是任何东西。语言?我正在寻找是否有现成的解决方案,因为问题似乎很明显。希望有 ODBC 或 OLEDB 驱动程序。例如用于访问文本或 csv 文件或类似文件
    【解决方案2】:

    我假设您将在数据库中将有关文件夹结构的信息存储为层次结构:

    • 身份证
    • 父母ID
    • 对象名称

    例如,要将 fileA 和 fileB 存储在 DirectoryD 下,您将拥有三个记录: - 1, 1, 根 - 2, 1, 目录D - 3、2、文件A - 4、2、文件B

    如果是这样,我建议阅读分层数据库模型:

    【讨论】:

      【解决方案3】:

      您可以尝试importing a .NET assembly into your database,其中包含用于查询文件系统的逻辑,将其公开为用户定义的函数,然后在您想从该目录实时获取值的任何时候调用该函数。

      当然,我只看到过使用 .Net 函数的标量结果完成此操作,但它应该也可以返回表值。

      可以在here 找到一个简单的 C# 文件系统访问示例,但如果 C# 不是你的风格,或者你根本不涉足代码,那么这将没有任何帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-09
        • 2018-03-11
        相关资源
        最近更新 更多