【问题标题】:How to limit GetFiles to get all paths created after a certain date?如何限制 GetFiles 以获取在某个日期之后创建的所有路径?
【发布时间】:2019-01-15 19:59:52
【问题描述】:

我是 VB 的初学者,我正在拼凑一个快速工具来将数据从 excel 表中提取到 SQL 服务器中。

我可以做的 excel 文件的实际打开/操作,但我想根据创建日期限制我正在处理的文件,但我正在努力搜索解决方案

所以为了获取所有路径,我只是使用:

Dim fname As String

For Each file As String In Directory.GetFiles(pathtoscan)
fname = Path.GetFileName(file)

这可以很好地获取所有内容(在我去的时候写入 SQL 服务器表),但是当然上面的意思是获取每一个路径,而我想通过只获取在 a 之后创建的路径来“优化”它确定的日期。

这是可行的,还是只是在抓取所有路径后进行过滤,因此意味着没有更好的“性能”?

非常感谢。

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    您可以使用 LINQ 和 File.GetCreationTime:

    Dim relevantFiles = From f In Directory.EnumerateFiles(pathtoscan)
                        Where File.GetCreationTime(f) > yourDate
    
    For Each file As String In relevantFiles 
        ' ... '
    Next
    

    同时使用EnumerateFiles 代替GetFiles。后者在您开始过滤它们之前返回所有文件的数组。前者一个接一个地返回。

    【讨论】:

    • 非常感谢,完美运行。出于好奇,如果查看目录而不是文件,是否存在这种情况的变体,即 For Each dir As String In Directory.GetDirectories(pathtoscan) ?
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多