//
// Pauthor - An authoring library for Pivot collections
// http://pauthor.codeplex.com
//
// This source code is released under the Microsoft Code Sharing License.
// For full details, see: http://pauthor.codeplex.com/license
//
using System;
using System.IO;
using System.Net;
public static class UriUtility
{
public static String GetFileName(String path)
{
if (IsLocalFile(path))
{
return Path.GetFileName(path);
}
else
{
Uri uri = new Uri(UriUtility.ExpandUri(path), UriKind.RelativeOrAbsolute);
if (uri.IsAbsoluteUri == false) return Path.GetFileName(path);
if (uri.Segments.Length <= 1) return null;
return uri.Segments[uri.Segments.Length - 1];
}
}
public static bool IsLocalFile(String path)
{
Uri uri = new Uri(path, UriKind.RelativeOrAbsolute);
if (uri.IsAbsoluteUri) return uri.IsFile;
if (File.Exists(path) || Directory.Exists(path)) return true;
return false;
}
public static String ExpandUri(String path)
{
Uri uri = new Uri(path, UriKind.RelativeOrAbsolute);
if (uri.IsAbsoluteUri)
{
if (uri.IsFile) return uri.LocalPath;
return uri.AbsoluteUri;
}
if (File.Exists(path) || Directory.Exists(path)) return Path.GetFullPath(path);
return path;
}
}