Vb.net 当文件名包含空格时,解压.7z文件的命令行参数/字符串中出现问题
我查看了.7z网站常见问题解答和其他相关网站了解我的问题。但没有找到解决这个问题的最佳方案。 当.7z文件名没有空间时,我的cmd将运行perfectecly进行解压缩。但是当zip foldername包含空格时,它就不起作用了Vb.net 当文件名包含空格时,解压.7z文件的命令行参数/字符串中出现问题,vb.net,cmd,unzip,7zip,Vb.net,Cmd,Unzip,7zip,我查看了.7z网站常见问题解答和其他相关网站了解我的问题。但没有找到解决这个问题的最佳方案。 当.7z文件名没有空间时,我的cmd将运行perfectecly进行解压缩。但是当zip foldername包含空格时,它就不起作用了 Dim args As String = "e " + """" + zipFileFolder + """" + " -o" + ToFolder + "" + " -p""Password123""" + " -aoa" 示例:Zip文件名: 3344-2633
Dim args As String = "e " + """" + zipFileFolder + """" + " -o" + ToFolder + "" + " -p""Password123""" + " -aoa"
示例:Zip文件名:
3344-2633-9058-4583_37DB40L1KLJU_15_07_2017__18_40_39_FSserviceLog.7z
那么,如果没有此文件名,它将正常运行:
6530-0567-9050-2878
AVsetting_WD-WXS1A176FF0E_15_05_2017_17_57_37-F6serviceLog.7z
如果2878和AVSETING之间有空格,则我的命令无效。请帮我做这件事
请检查以下代码:
Function extract7z(zipFileFolder As String, ToFolder As String)
Try
Dim args As String = "e " & """" & zipFileFolder & """" & " -o" & ToFolder & "" & " -p""cyberspa123""" & " -aoa"
Dim p As New Process
Dim pInfo As New ProcessStartInfo
pInfo.FileName = exePath
pInfo.Arguments = args
pInfo.WindowStyle = ProcessWindowStyle.Hidden
p.StartInfo = pInfo
p.Start()
p.WaitForExit()
' System.Diagnostics.Process.Start(exePath, args)
'Threading.Thread.Sleep(1000)
' System.IO.File.Delete(zipFileFolder)
For Each foundFile As String In My.Computer.FileSystem.GetFiles(ToFolder)
Dim check As String = System.IO.Path.GetExtension(foundFile)
If (check = ".7z") Then
Dim zipFolderpath1 As String = System.IO.Path.GetFullPath(ToFolder & "/" & System.IO.Path.GetFileNameWithoutExtension(foundFile))
extract7z(foundFile, zipFolderpath1)
End If
Next
Catch ex As Exception
Console.WriteLine(ex.Message.ToString)
MessageBox.Show(ex.Message.ToString)
End Try
End Function
你能从文件名中删除空格吗?什么叫“不工作”?它会给你任何错误吗?你能告诉我们你是如何开始这个过程的吗?你不是第一个,但你真的没有花很多心思在字符串连接上。为什么要连接两个字符串文字,为什么要连接空字符串?您还应该使用
&
而不是+
进行字符串连接Dim参数为String=“e”“”和zipFileFolder&“-o”和ToFolder&“-p”Password123“-aoa”
。这会立即提高可读性,因此不容易出错String.Format或字符串插值将进一步改进它。至于这个问题,当它失败时,
args`到底包含什么?你到底是如何使用它的?@TrevorBrooks:我做不到。文件名也在其他地方用于进一步处理。@VisualIncent:请检查编辑的问题。我只是补充一下。您也可以在cmd中尝试此命令。是否可以从文件名中删除空格?什么是“不工作”?它会给你任何错误吗?你能告诉我们你是如何开始这个过程的吗?你不是第一个,但你真的没有花很多心思在字符串连接上。为什么要连接两个字符串文字,为什么要连接空字符串?您还应该使用&
而不是+
进行字符串连接Dim参数为String=“e”“”和zipFileFolder&“-o”和ToFolder&“-p”Password123“-aoa”
。这会立即提高可读性,因此不容易出错String.Format或字符串插值将进一步改进它。至于这个问题,当它失败时,
args`到底包含什么?你到底是如何使用它的?@TrevorBrooks:我做不到。文件名也在其他地方用于进一步处理。@VisualIncent:请检查编辑的问题。我只是补充一下。您也可以在cmd中尝试此命令。