【发布时间】:2012-01-17 08:49:02
【问题描述】:
我已经看到了几十个关于这个主题的问题和答案,但我仍然无法解决我的问题。
我在我的代码中使用了一个外部 ffmpeg 转换器,并且我正在传递一个文件路径作为这样的参数:
OutputPackage oo = converter.ConvertToFLV(@"C:\Users\user\Documents\test Video\video.wmv");
当“测试视频”文件夹名称中没有空格时,它可以正常工作。但是当它像上面一样时,我收到一个错误,C:\Users\user\Documents\test 不是有效路径。
用引号括起来,例如:
@"""C:\Users\user\Documents\test Video\video.wmv"""
结果
视频文件“C:\Users\user\Documents\test Video\video.wmv”不存在。
我也试过不带“@”:
"\"C:\\Users\\user\\Documents\\test Video\\video.wmv\""
但结果是一样的。
Path.Combine("C:\\Users\\user\\Documents\\test Video\\video.wmv")
"\""+Path.Combine("C:\\Users\\user\\Documents\\test Video\\video.wmv")+"\""
也不行。 同时运行 Windows 控制台形式的进程,如
ffmpeg.exe "C:\Users\user\Documents\test Video\video.wmv"
工作得很好。
更新: 该方法使用这样的字符串:
public OutputPackage ConvertToFLV(string inputPath)
{
VideoFile vf = null;
try
{
//string path = string.Format("{0}", inputPath);
vf = new VideoFile(inputPath);
}
catch (Exception ex)
{
throw ex;
}
OutputPackage oo = ConvertToFLV(vf);
return oo;
}
和
在视频文件类中,这里抛出异常:
if (!File.Exists(_Path))
{
throw new Exception("The video file " + _Path + " does not exist.");
}
【问题讨论】:
-
试试正斜杠。
/而不是 `\` -
试试正斜杠?? c:/dir/文件
-
@""字符串文字表示法是编译器的事情。使用它还是转义 `` 的每个 sincle 实例都没有关系,结果字符串是相同的。无论如何,这听起来像是您正在使用的库中的错误。 -
ConvertToFLV 方法也可能有问题。可以贴出方法的代码吗?
-
您是否正在尝试查看其他用户的文件?