命令行-如何通过C#进程类解析unc路径
本文关键字:unc 路径 进程 何通过 命令行 | 更新日期: 2023-09-27 17:58:16
我有以下代码片段:
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测试线束''SAMI测试数据''Carrier-Based''ABC001.mp3
因此,从我所能看到的基本情况来看,当MediaInfo通过c#中的进程对象启动时,它没有正确解析网络路径,因为当媒体文件是本地文件时,会返回一个大的xml文档,如果这些文件恰好不是本地文件,那么我们会得到一个看起来空的xml文档。
最后,我正在使用File。Exists(…)以验证每个文件是否存在。
原来这是UNC路径中空格的一个简单情况-=|
c代码是正确的。事实证明,如果您通过应用程序(即c#命令行应用程序,内部或非内部)通过UNC路径访问网络资源,并且您的UNC路径作为参数传入如果路径中有空格,则应该用双引号将其括起来
否则,如果没有双引号,您的路径将作为参数或硬编码值传入,其中不得有任何空格!不管怎样,它都不会起作用。