Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过C#进程类解析unc路径?_C#_Command Line - Fatal编程技术网

如何通过C#进程类解析unc路径?

如何通过C#进程类解析unc路径?,c#,command-line,C#,Command Line,我有以下代码片段: private XDocument CreateXmlForMediaFile(string mediaFilePath) { var args = string.Format("-f {0} --Output=XML", mediaFilePath); var miProcess = new Process { StartInfo = new ProcessStartInfo()

我有以下代码片段:

    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文档

e、 g C:\temp\input\ABC001.mp3

但是

mediaFilePath=unc路径,在服务器上某处=返回空xml文档

e、 g\\w2k testharness\SAMI Testdata\CarrierBase\ABC001.mp3

因此,从我所知道的基本情况来看,当MediaInfo通过c#中的进程对象启动时,它不能正确解析网络路径,就像当媒体文件是本地文件时,返回一个大的xml文档,如果该文件恰好不是本地文件,那么我们会得到一个空的xml文档


最后,我使用File.Exists(…)来验证每个文件是否存在。

证明这是UNC路径中空格的简单情况-=|

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


否则,如果没有双引号,作为参数或硬编码值传入的路径中不得有空格!否则它将不起作用。

您永远不应该将路径作为参数传递而不带引号。避免引用是将bug引入程序的一种好方法。如果你设法使你的程序工作而不传递那些引文,那就认为自己是幸运的。