VB.NET连接字符串会添加不需要的空间
我完全搞不懂为什么会这样。我正在编写一个小应用程序,用date Take属性为图像文件添加前缀。但是,当我附加.jpg扩展名时,它会在文件名和扩展名之间添加一个空格。例如“2017-11-07_13:04:01.jpg”VB.NET连接字符串会添加不需要的空间,vb.net,Vb.net,我完全搞不懂为什么会这样。我正在编写一个小应用程序,用date Take属性为图像文件添加前缀。但是,当我附加.jpg扩展名时,它会在文件名和扩展名之间添加一个空格。例如“2017-11-07_13:04:01.jpg” 正如你所见,我试图通过修剪和替换来替换空间,但没有任何效果 从文件中获取日期时,它包含一个“VbNullChar” 您所需要做的就是添加一行代码来修剪它 Private Function ProcessFile(ByVal path As String) As String
正如你所见,我试图通过修剪和替换来替换空间,但没有任何效果 从文件中获取日期时,它包含一个“VbNullChar” 您所需要做的就是添加一行代码来修剪它
Private Function ProcessFile(ByVal path As String) As String
Const DATE_TAKEN As Integer = &H9003
Dim img As Image = Image.FromFile(path)
Dim dateTaken As String
Dim pitem As PropertyItem
If img.PropertyIdList.Contains(DATE_TAKEN) Then
pitem = img.GetPropertyItem(DATE_TAKEN)
dateTaken = Encoding.UTF8.GetString(pitem.Value, 0, pitem.Value.Length).ToString
dateTaken = dateTaken.Trim(vbNullChar)
dateTaken = Trim(Replace(Replace(dateTaken, ":", "-"), " ", "_"))
dateTaken = Replace(dateTaken & ".jpg", " ", "")
Else
dateTaken = "Not available"
End If
img.Dispose()
pitem = Nothing
Return dateTaken
End Function
很明显,它不是一个空格字符,因为替换并没有删除它。所以,从字符串中获取该字符,看看它的实际值是什么。在不知道日期字段的格式的情况下,我最初的猜测是它实际上不是一个UTF-8字符串。或者它以null结尾,实际上是一个空字符串结尾为空字符,而不是空格。
Private Function ProcessFile(ByVal path As String) As String
Const DATE_TAKEN As Integer = &H9003
Dim img As Image = Image.FromFile(path)
Dim dateTaken As String
Dim pitem As PropertyItem
If img.PropertyIdList.Contains(DATE_TAKEN) Then
pitem = img.GetPropertyItem(DATE_TAKEN)
dateTaken = Encoding.UTF8.GetString(pitem.Value, 0, pitem.Value.Length).ToString
dateTaken = dateTaken.Trim(vbNullChar)
dateTaken = Trim(Replace(Replace(dateTaken, ":", "-"), " ", "_"))
dateTaken = Replace(dateTaken & ".jpg", " ", "")
Else
dateTaken = "Not available"
End If
img.Dispose()
pitem = Nothing
Return dateTaken
End Function