看来我对 ASP.Net VB.Net 中的反斜杠并不幸运。
我正在尝试使用 ffprobe 输出有关文件的一些信息,并且我的路径在每个包含反斜杠的字符串中的某个反斜杠处随机剪切。
我调试了这个函数来返回fileToProcess生成的路径:
Function ffprobe_show_format(ByVal arg As String) As String
Dim myProcess As New System.Diagnostics.Process()
Dim fileToProcess As String = MapPath(".") & "\temps\" & arg
myProcess.StartInfo.FileName = MapPath(".") & "\ffprobe.exe"
myProcess.StartInfo.Arguments = "-show_format " & fileToProcess & " >C:\inetpub\vhosts\mysite.com\httpdocs\absolutefs\ffmpegtemp.txt"
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.RedirectStandardInput = True
myProcess.StartInfo.RedirectStandardOutput = True
myProcess.Start()
Dim myStreamWriter As StreamWriter = myProcess.StandardInput
Dim mystreamreader As StreamReader = myProcess.StandardOutput
Dim str As String = mystreamreader.ReadToEnd
Return str & ";" & "FileToProcess=" & fileToProcess & "MapPath(.) AND ffprobe.exe" & MapPath(".") & "\\ffprobe.exe"
End Function
它返回;FileToProcess=C:
代表着
- 由于某些错误,我的文件未处理
- 我的路径在反斜杠处被切断
- 然后将其余的字符串断开
我是否需要告诉 asp.net 以另一种方式表示反斜杠?
[编辑]
我无法选择答案,但会投赞成票,因为我犯了两个错误: - 为了调试,我正在读取我的值,一旦它被放入具有限制大小的 SQL 变量然后 - ...使用可能拒绝的 Newtonsoft.Json 解析器获取一些字符。
我是 ASP.Net 的新手,所以我很难找到调试的好方法。因此,当我无法在平台上进行调试时,我终于像往常一样:我已经在文本文件中编写了调试变量,并且所有内容都使用这种方式:
Function ffprobe_show_format(ByVal file As String, ByVal app As String) As String
Dim myProcess As New System.Diagnostics.Process()
myProcess.StartInfo.FileName = app
Dim argz As String = FormatCommandLine("-show_format", file)
myProcess.StartInfo.Arguments = argz
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.RedirectStandardOutput = True
myProcess.Start()
Dim mystreamreader As StreamReader = myProcess.StandardOutput str As String = mystreamreader.ReadToEnd
MapPath(".") & "/ffprobe.exe"
Dim objWriter As New System.IO.StreamWriter(MapPath(".") & "\debug.txt")
objWriter.Write(str)
objWriter.Close()
Return str
End Function
我将添加一个 ffmpeg 标签,因为它也是如何调用它和处理文件的另一个示例。