Vb.net 当文件名包含空格时,解压.7z文件的命令行参数/字符串中出现问题

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

我查看了.7z网站常见问题解答和其他相关网站了解我的问题。但没有找到解决这个问题的最佳方案。 当.7z文件名没有空间时,我的cmd将运行perfectecly进行解压缩。但是当zip foldername包含空格时,它就不起作用了

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中尝试此命令。