我需要替换VB中路径文件的末尾。所以我尝试了这个代码:
Private Function getfiledata(ByVal fichier As String) As String
Dim fileReader As String
Dim FichierFinal As String
MsgBox(fichier)
FichierFinal = fichier.Replace("E002.pfx","_E002.pem")
FichierFinal = fichier.Replace("X002.pfx","_X002.pem")
FichierFinal = fichier.Replace("A005.pfx","_A005.pem")
MsgBox(FichierFinal)
fileReader = My.Computer.FileSystem.ReadAllText(FichierFinal)
Return fileReader
End Function第一个MsgBox函数返回以下结果:
C:/User/Bruno/Documents/Visual 2010/Projects/SerEbics/SerEbics/bin/Debug/Certificats/512250X002.pfx
但第二条路让我回到了同样的道路:
C:/User/Bruno/Documents/Visual Studio2010/Projects/SerEbics/SerEbics/bin/Debug/Certificats/512250X002.pfx
所以我需要这个结果:
C:/User/Bruno/Documents/Visual Studio2010/Projects/SerEbics/SerEbics/bin/Debug/Certificats/512250_X002.pem
提前谢谢你!
托马斯
发布于 2016-01-12 14:57:52
你没有做你想做的事。在每一行新行中,您取消了前面的一行,并将FichierFinal定义为一个新值。
这将有效(另外不需要在3行中这样做):
FichierFinal = fichier.Replace("E002.pfx","_E002.pem").Replace("X002.pfx","_X002.pem").Replace("A005.pfx","_A005.pem")发布于 2016-01-12 14:54:47
一行中使用teh替换函数的三行没有完全按照您的想法执行。每一次,他们都会将FichierFinal设置为新的东西。所以他们没有建立在彼此的基础上。试着用以下方法替换它们:
FichierFinal = fichier.Replace("E002.pfx","_E002.pem")
FichierFinal = FichierFinal.Replace("X002.pfx","_X002.pem")
FichierFinal = FichierFinal.Replace("A005.pfx","_A005.pem")发布于 2016-01-12 14:55:39
这是因为您最后一次替换变量FichierFinal中的原始名称。只有当文件以预期的字符串结束时,才应该执行替换。
If fichier.EndsWith("E002.pfx") Then
FichierFinal = fichier.Replace("E002.pfx","_E002.pem")
Else if fichier.EndsWith("X002.pfx") Then
FichierFinal = fichier.Replace("X002.pfx","_X002.pem")
Else if fichier.EndsWith("A005.pfx") Then
FichierFinal = fichier.Replace("A005.pfx","_A005.pem")
End If通过这种方式,只执行一次替换,而不是三次。请记住,每次调用替换时,都会分配和返回一个新字符串,并且取决于调用的上下文,这可能会对代码的性能产生影响。
https://stackoverflow.com/questions/34746734
复制相似问题