我需要从文件夹中获取与每个文件名的文件模式和日期格式相匹配的文件列表。日期格式为yyyyMMdd HHmm,因此如果文件模式为' test _',系统必须获取包含文件名的所有文件,例如' test_20150105 2100'。
我使用DateTime.TryParseExact检查日期是否与给定的日期格式匹配。
我的问题是,如果文件名中的小时为' 2400'系统无法获取文件。
以下是我使用的代码,仅适用于那些没有' 2400'小时:
Dim find As String = "test_"
Dim last As Char
Dim length, n As Integer
Dim value As String
Dim dformat As String = "yyyyMMdd HHmm"
Dim extractedDate As String
Dim ddt As DateTime
Dim filename As String
For Each file As String In IO.Directory.GetFiles("C:\Documents and Settings\Admin\My Documents\JGC\shared folder test")
filename = IO.Path.GetFileNameWithoutExtension(file)
length = filename.Length
If filename.Contains(find) Then
last = find(find.Length - 1)
n = find.LastIndexOf(last) + 1
extractedDate = filename.Substring(n, length - find.Length)
If DateTime.TryParseExact(extractedDate, dformat, Globalization.CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None, ddt) Then
value = find & extractedDate
If filename = value Then
ListBox1.Items.Add(IO.Path.GetFileNameWithoutExtension(file))
End If
End If
End If
Next
提前致谢。
答案 0 :(得分:0)
只需为" 2400":
添加一个特例if( extractedDate.EndsWith("2400") ) {
extractedDate = extractedDate.SubString( 0, extractedDate.Length - 4) + " 2359";
}
if( DateTime.TryParseExact( extractedDate, ...