我在下面的C#编码: -
private void button3_Click(object sender, EventArgs e)
{
string filePathWithoutQuotes = "J:\\DataSource\\歌音楽\\Ver1\\夜霧の第二国道(カラオケ)フランク永井 (u6quC2KQNHw)(本人出演).mp4";
// case 1:
System.Diagnostics.Process.Start("C:\\Users\\Frank\\Downloads\\動画再生\\Qonoha\\qonoha20203\\qonoha\\Qonoha.exe",
filePathWithoutQuotes);
// case 2
System.Diagnostics.Process.Start("C:\\Users\\Frank\\Downloads\\動画再生\\Qonoha\\qonoha20203\\qonoha\\Qonoha.exe",
@"""J:\\DataSource\\歌音楽\\Ver1\\夜霧の第二国道(カラオケ)フランク永井 (u6quC2KQNHw)(本人出演).mp4""");
}
案例2:Win7完整路径名称正确传递,视频文件由名为Qonoha的视频播放器播放和打开。这只是一个控制测试,以确保正确完成编程的休息。
案例1:由于视频文件无法播放或打开,同一视频文件未正确传递。
答案 0 :(得分:0)
我在案例2中看到您将全名放入引号(@"""J:\....mp4"""
),而案例1则没有(aaa = "J:\....mp4"
)。虽然我怀疑解决方案可能如此明显,但您是否尝试过aaa = @"""J:\....mp4"""
?
答案 1 :(得分:0)
看起来该工具需要引号中的文件路径(这在路径包含空格的情况下非常常见)。
您的第二种情况明确指定值周围的引号:@"""x"""
是引号中x的字符串文字。第一种情况的值仅指定"x"
,因此没有引号。
答案 2 :(得分:0)
如果您的文件名有空格,Process
会将其视为另一个命令。
如果在没有引号""
的情况下直接传递命令参数,则在命令行中,如果它包含空格,则会将其视为另一个命令。
在你的情况1中,完全相同。