命令行-如何通过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(…)以验证每个文件是否存在。

命令行-如何通过C#进程类解析unc路径

原来这是UNC路径中空格的一个简单情况-=|

c代码是正确的。事实证明,如果您通过应用程序(即c#命令行应用程序,内部或非内部)通过UNC路径访问网络资源,并且您的UNC路径作为参数传入如果路径中有空格,则应该用双引号将其括起来

否则,如果没有双引号,您的路径将作为参数或硬编码值传入,其中不得有任何空格!不管怎样,它都不会起作用。