我用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播放并打开。这只是一个控制测试,以确保编程的其余部分被正确完成。
案例一:视频文件播放或打开失败,同一视频文件不能正常通过。
发布于 2017-02-28 13:03:35
我看到在情况2中,您将全名放在引号中(@"""J:\....mp4"""),而在情况1中则没有(aaa = "J:\....mp4")。虽然我怀疑这个解决方案可能如此明显,但是您尝试过aaa = @"""J:\....mp4"""吗
发布于 2017-02-28 13:04:09
看起来该工具希望文件路径用引号括起来(这在路径包含空格的情况下很常见)。
第二种情况在值两边显式地指定了引号:@"""x"""是x的字符串文字,用引号括起来。第一种情况的值只指定"x",因此没有引号。
发布于 2017-02-28 13:13:35
如果您的文件名包含空格,Process会将其视为另一个命令。
在命令行中,如果您直接传递命令参数而不带引号"",则如果命令行中包含空格,则会将其视为另一个命令。
在您的案例1中,也发生了完全相同的情况。
https://stackoverflow.com/questions/42500422
复制相似问题