将DateTime Stamp附加到Filename的末尾

时间:2016-05-19 17:27:06

标签: vb.net

我需要协助在每个文件的末尾添加时间戳。

基本上这是我需要的格式:

" Number_Doctype_Id_Variable_Name_Currentdatetime"

这是构建名称的函数的一部分:

    Dim strFileName As New StringBuilder
    strFileName.Append(Lab & "_" & dtRecords.Rows(0)(0).ToString)
    Dim strIndex0 As String = dtRecords.Rows(0)(2).ToString.Trim
    Dim strIndex1 As String = dtRecords.Rows(0)(3).ToString.Trim
    Dim strIndex2 As String = dtRecords.Rows(0)(4).ToString.Trim
    strFileName.Append("_" & IIf(strIndex0.Trim.Length > 0, strIndex0, ""))
    strFileName.Append("_" & IIf(strIndex1.Trim.Length > 0, strIndex1, ""))
    strFileName.Append("_" & IIf(strIndex2.Trim.Length > 0, strIndex2, ""))
    strFileName.Append("_" & Format(Now(), "MMddyyyyhhmmss"))

但是,这是结果的一个例子:

" 01_PDF_123456789_987654321_John Doe_05192016"

我不确定为什么它没有拉动确切的时间,这就是我需要使它独特的。

这就是我想要的:

" 01_PDF_123456789_987654321_John Doe_05192016093030"

有任何帮助吗?

谢谢,

2 个答案:

答案 0 :(得分:0)

试试这个:

DateTime.Now.ToString("MMddyyyyhhmmss")

我建议:

DateTime.Now.ToString("yyyyMMddHHmmss")

因此您对具有相同休息文件名的文件有某种顺序。

答案 1 :(得分:0)

链接String Format for DateTime很好地列出了DateTime格式,请尝试此功能。该函数接受DataTable并返回所需的文件名。该函数利用String.Format转换为所需的DateTime格式。

 Function Foo(dtRecords As DataTable)

    Dim Lab As String = "01"
    Dim docType As String = dtRecords.Rows(0)(0).ToString

    Dim strIndex0 As String = dtRecords.Rows(0)(2).ToString.Trim
    Dim strIndex1 As String = dtRecords.Rows(0)(3).ToString.Trim
    Dim strIndex2 As String = dtRecords.Rows(0)(4).ToString.Trim

    Dim val As String = String.Format("{0}_{1}_{2}_{3}_{4}_{5:MMddyyyyhhmmss}", Lab, docType, strIndex0, strIndex1, strIndex2, Now())

    Return val

End Function

驱动程序代码应该如下所示(仅为了更加清晰)。创建的DataTable保留了函数中显示的模式。你会看到第二列(即索引1是标题为-Unused - )

Sub Main()
    Dim dt As New DataTable
    dt.Columns.Add("DocType", Type.GetType("System.String"))
    dt.Columns.Add("-Unused-", Type.GetType("System.String"))
    dt.Columns.Add("Id", Type.GetType("System.String"))
    dt.Columns.Add("Variable", Type.GetType("System.String"))
    dt.Columns.Add("Name", Type.GetType("System.String"))

    dt.Rows.Add("PDF", "//", "123456789", "987654321", "Jhon Doe")

    Console.WriteLine(Foo(dt))

End Sub

希望这会有所帮助。