【问题标题】:Scanning a folder then store the results in a file or SQL table C#扫描文件夹然后将结果存储在文件或 SQL 表中 C#
【发布时间】:2014-09-16 12:22:48
【问题描述】:

我想要的是扫描特定文件夹“C:\SomeFolder\”并查找 .txt 文件并每隔 n 秒查找更新。然后将这些文件名放入一个 SQL 表中(名称、行...) 我知道这会获取文件“ string[] filePaths = Directory.GetFiles(@"c:\SomeFolder\", "*.txt"); ”但是如何刷新研究并将它们存储在文件或 SQL 中桌子 ? 我尝试使用 Append,但每次都遇到问题,尤其是它需要作为 Windows 服务运行。

【问题讨论】:

  • 用于读取文件中的行:stackoverflow.com/questions/119559/… 只要每 n 秒运行一次,您只需在指定时间后调用解析函数。要插入数据库,请枚举您的文件列表并为每条记录插入/更新一个条目。这似乎是一个有点宽泛的问题,所以很难说出你需要帮助的地方。此外,您正在做什么来停止(或者您是否关心)在检查已加载文件中的行数时几乎不断地重复工作这一事实

标签: c# sql windows-services


【解决方案1】:

根据您的实际需要,结合使用 FileSystemWatcher (http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher%28v=vs.110%29.aspx) 和 File.ReadAllText (http://msdn.microsoft.com/en-us/library/ms143368%28v=vs.110%29.aspx) 可能会为您提供实现目标的方法。

FileSystemWatcher 可用于监视目录的更改,包括新文件和现有文件的修改。

然后您可以订阅适合您需要的事件,然后您可以在委托中获取文件名。

使用 File.ReadAllText 可让您轻松加载字符串中的文件内容,您应该能够将其包含在 SQL 查询中,如果您使用的是原始 SQL,则可以通过连接,或者将其分配给您的相关属性如果您使用的是 ORM,则为实体。

请注意,我假设您的文件是纯文本。如果你需要将其存储为二进制,File.ReadAllBytes 会更贴切。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多