// Volumes, VolumeItems and strings public GlobalPath GlobalPathFromObject(object pathObject) { if (pathObject is Volume) { GlobalPath p = GlobalPath.FromVolumePath(VolumePath.EMPTY, GetVolumeRawIdentifier(pathObject as Volume)); SafeHouse.Logger.Log("Path from volume: " + p); return(p); } else if (pathObject is VolumeItem) { VolumeItem volumeItem = pathObject as VolumeItem; return(GlobalPath.FromVolumePath(volumeItem.Path, GetVolumeRawIdentifier(volumeItem.Volume))); } else { return(GlobalPathFromString(pathObject.ToString())); } }
// Handles global, absolute and relative paths private GlobalPath GlobalPathFromString(string pathString) { if (GlobalPath.HasVolumeId(pathString)) { return(GlobalPath.FromString(pathString)); } else { if (GlobalPath.IsAbsolute(pathString)) { return(GlobalPath.FromVolumePath(VolumePath.FromString(pathString), GetVolumeRawIdentifier(CurrentVolume))); } else { return(GlobalPath.FromStringAndBase(pathString, GlobalPath.FromVolumePath(CurrentDirectory.Path, GetVolumeRawIdentifier(CurrentVolume)))); } } }