C#中的路径空间
问题描述:
我已经看到关于这个问题的数十个问题和答案,但我仍然无法解决我的问题。C#中的路径空间
我用我的代码的外部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:\用户\用户\文档\测试视频\ 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"
作品完全罚款。
UPDATE: 该方法使用这样的字符串:
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.");
}
答
好吧,来包装主题...
虽然像ffmpeg的外任务要求包含空格的路径放在qoutes“路径”(因为Windows控制台将空间视为参数之间的分隔符),但C#中使用的File.Exists()方法不接受路径中的引号,并且对路径中的空格效果很好。
尝试正斜杠。 '/'而不是'\\' – leppie 2012-01-17 08:51:54
尝试正斜杠? c:/ dir/file – Dve 2012-01-17 08:52:11
“@”“'字符串文字符号是编译器的东西。无论你使用它还是转义'\'的每个实例,结果字符串都是相同的。无论如何,这听起来像是你正在使用的库中的一个错误。 – Joey 2012-01-17 08:52:53