2013-07-23 29 views
0

任何人都可以请帮助 -Vb.Net - 从目录基于日期获取文件计数

如何检查是否我们已经收到了(假设文件名“Test.csv”)今天在举行目录“ Test.csv“为每个月的每一天。

所以我要检查,如果我们已经收到“Test.csv”今天(指23 - 07月13)

我挣扎着爬基于日期目录内容。

问候

+0

看看文件是否存在,然后检查它的创建日期或最后修改日期。 – Alexander

回答

0

您可以使用Directory.EnumerateFiles和LINQ:

Dim csvFiles = From csv In Directory.EnumerateFiles("DirectoryPath", "*Test.csv", IO.SearchOption.AllDirectories) 
       Where File.GetCreationTime(csv).Date = Date.Today 
For Each csvPath In csvFiles 
    Console.WriteLine(csvPath) 
Next 

如果你是在.NET 2的评论,你没有LINQ和Directory.EnumerateFiles,然后用GetFiles和循环:

Dim csvFilesToday = New List(Of String) 
For Each csv In Directory.GetFiles("DirectoryPath", "*Test.csv", IO.SearchOption.AllDirectories) 
    If File.GetCreationTime(csv).Date = Date.Today Then 
     csvFilesToday.Add(csv) 
    End If 
Next 
+0

我正在获取消息directory.enumeratefiles不是system.io.directory的成员。请告知 –

+0

@ConradJagger:那么您至少没有使用.NET Framework 4.0,您使用的是哪个版本?你可以用'Directory.GetFiles'替换它,它在开始处理之前将所有文件名加载到内存中。 –

+0

更改为getfiles它说“表达式的类型'1维数组的字符串'是不可排队的。请确保您没有丢失linq提供程序” –

0

嘿试试这个来获取当前日期文件在特定文件夹中

Imports System.IO 



Dim directory = New DirectoryInfo("D:\TestPic") 
    Dim myFile2 = directory.GetFiles().Where(Function(a) a.LastWriteTime.[Date] =       DateTime.Today).ToList() 

    For Each csvPath In myFile2 
     Console.WriteLine(csvPath) 
    Next 

希望它可以帮助你