【发布时间】:2013-02-11 22:11:32
【问题描述】:
我有以下sn-p的代码:
private XDocument CreateXmlForMediaFile(string mediaFilePath)
{
var args = string.Format("-f {0} --Output=XML", mediaFilePath);
var miProcess = new Process
{
StartInfo = new ProcessStartInfo()
{
Arguments = args,
FileName = _mediaInfoPath, // path to where MediaInfo.exe is located.
RedirectStandardOutput = true,
CreateNoWindow = true,
UseShellExecute = false
}
};
// create and instantiate a new xdocument that contains our results for the current manifest.
miProcess.Start();
var newXDoc = XDocument.Load(miProcess.StandardOutput);
return newXDoc;
}
无论何时
mediaFilePath = 本地路径 = 返回完整的 xml 文档。
例如 C:\temp\input\ABC001.mp3
但是
mediaFilePath = unc 路径,在某处的服务器上 = 返回空的 xml 文档。
例如 \\w2k-testharness\SAMI Testdata\CarrierBased\ABC001.mp3
所以基本上我可以告诉这里发生的事情是,当 MediaInfo 通过 c# 中的进程对象启动时,它没有正确解析网络路径,因为当媒体文件是本地的时,会返回一个大的 xml 文档,如果该文件恰好不是本地文件,然后我们得到一个空的 xml 文档。
最后,我使用 File.Exists(...) 来验证每个文件是否存在。
【问题讨论】:
标签: c# command-line