检查路径输入是URL还是本地文件

Ahm*_*med 19 c#

我在xmldataprovider工作,我们有配置值"source"这个值可能是本地文件或url像

c:\ data\test.xml --absolute data\test.xml --relative

或url http:\ mysite\test.xml

我如何在代码中确定所有这些情况我正在工作c#

小智 32

private static bool IsLocalPath(string p)
{
  return new Uri(p).IsFile;
}
Run Code Online (Sandbox Code Playgroud)

...或者,如果您想包含对某些无效URI的支持......

private static bool IsLocalPath(string p)
{
  if (p.StartsWith("http:\\"))
  {
    return false;
  }

  return new Uri(p).IsFile;
}
Run Code Online (Sandbox Code Playgroud)

示例用法

static void Main(string[] args)
{
  CheckIfIsLocalPath("C:\\foo.txt");
  CheckIfIsLocalPath("C:\\");
  CheckIfIsLocalPath("http://www.txt.com");
}

private static void CheckIfIsLocalPath(string p)
{
  var result = IsLocalPath(p); ;

  Console.WriteLine("{0}  {1}  {2}", result, p, new Uri(p).AbsolutePath);
}
Run Code Online (Sandbox Code Playgroud)