DSInternals/Src/DSInternals.PowerShell/Commands/Base/PSCmdletEx.cs
2015-12-26 23:44:43 +01:00

31 lines
1.0 KiB
C#

namespace DSInternals.PowerShell.Commands
{
using Microsoft.PowerShell.Commands;
using System.Management.Automation;
public abstract class PSCmdletEx : PSCmdlet
{
protected string ResolveSinglePath(string path)
{
if (path == null)
{
return null;
}
ProviderInfo provider;
// This throws ItemNotFoundException if the path is not found
var resolvedPath = this.GetResolvedProviderPathFromPSPath(path, out provider);
if (provider.ImplementingType != typeof(FileSystemProvider))
{
// TODO: Extract as resource
throw new ItemNotFoundException("The path provided does not point to the file system.");
}
if (resolvedPath.Count != 1)
{
// TODO: Extract as resource
throw new ItemNotFoundException("Could not resolve the path provided to a single file or directory.");
}
return resolvedPath[0];
}
}
}