【问题标题】:Drive searching云端硬盘搜索
【发布时间】:2009-10-13 15:17:56
【问题描述】:

我正在开发一个应用程序,我希望能够在整个驱动器中搜索正则表达式。我更喜欢在 c# 中执行此操作,但我可以调用其他语言。有没有什么简单的方法可以从头到尾查找驱动器上的所有二进制数据?

【问题讨论】:

  • 您是在搜索文件名还是文件内容?

标签: c# regex search


【解决方案1】:

这是 grep 在 C# 中的实现

http://dotnet.jku.at/applications/Grep/Src.aspx

您可以修改以跟随子目录——它使用文件名数组。

【讨论】:

    【解决方案2】:

    AFAIK 没有简单的方法可以对原始二进制数据执行此操作(您需要直接控制磁盘)。

    如果基于文件足以枚举所有文件,则打开它们以进行二进制共享读取(捕获受系统保护的异常)然后查找数据应该很简单。但是这会很慢,因为枚举和打开所有文件需要一些时间。

    【讨论】:

      【解决方案3】:

      我不认为 C# 可以读取操作系统所在驱动器的所有文件/数据,因为操作系统会锁定一些文件。

      您可以使用 System.IO 命名空间来枚举所有文件,然后逐字节逐一扫描它们,这显然需要很长时间。

      【讨论】:

        【解决方案4】:

        你真的想这样做吗?你打算怎么搜索:

        1. .doc
        2. .xls
        3. .pdf
        4. .html

        等等?每种文件类型都会以不同的方式代表您正在搜索的字符串。

        【讨论】:

          【解决方案5】:

          This article 展示了如何直接从磁盘读取数据。他们在 C++ 中所做的一切都可以使用 PInvoke 在 C# 中完成。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-01-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多