VB.NET连接字符串会添加不需要的空间(VB.NET concatenating strings adds unwanted space)
我完全搞不明白为什么会发生这种情况。 我正在编写一个小型应用程序,以图像文件为前缀属性添加前缀。 但是,当我追加.jpg扩展名时,它会在文件名和扩展名之间添加一个空格。 例如“2017-11-07_13:04:01.jpg”。
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 = Trim(Replace(Replace(dateTaken, ":", "-"), " ", "_")) dateTaken = Replace(dateTaken & ".jpg", " ", "") Else dateTaken = "Not available" End If img.Dispose() pitem = Nothing Return dateTaken End Function正如你所看到的那样,我试图通过修剪和替换来替换空间,但没有任何作用。
I'm completely mystified why this is happening. I'm writing a small app to prefix image files with the date-taken property. However when I append the .jpg extension it adds a space between the filename and the extension. For example "2017-11-07_13:04:01 .jpg".
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 = Trim(Replace(Replace(dateTaken, ":", "-"), " ", "_")) dateTaken = Replace(dateTaken & ".jpg", " ", "") Else dateTaken = "Not available" End If img.Dispose() pitem = Nothing Return dateTaken End FunctionAs you can see I've tried to replace the space by trimming and replacing but nothing works.
最满意答案
从文件中获取日期时,它包含一个“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 FunctionWhen you get the date from the file, it includes a `VbNullChar"
All you need to do is add in a line of code to trim that out ..
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更多推荐
发布评论