# AbsRelPaths class

Namespace: [GrasshopperIO](https://developer.rhino3d.com/api/gh2/namespace/grasshopperio.md) · Assembly: [GrasshopperIO](https://developer.rhino3d.com/api/gh2/assembly/grasshopperio.md)

```cs
public sealed class AbsRelPaths : IEquatable<AbsRelPaths>
```

A pair consisting of an absolute and relative path on a file system.

## Constructors

- [AbsRelPaths](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/ctor.md): Create a new file path. Arguments may not both be null. If both are specified, it is up to the caller to ensure they are mutually correct.

## Properties

- [Absolute](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/absolute.md): Gets the absolute path. If null, the relative path will be set.
- [FileExtension](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/fileextension.md): Gets the file extension as specified by either path.
- [FileName](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/filename.md): Gets the filename as specified by either path.
- [HasAbsolute](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/hasabsolute.md): Gets whether the [AbsRelPaths.Absolute](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/absolute.md) uri has been set.
- [HasBoth](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/hasboth.md): Gets whether both the [AbsRelPaths.Absolute](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/absolute.md) and [AbsRelPaths.Relative](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/relative.md) uris have been set.
- [HasRelative](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/hasrelative.md): Gets whether the [AbsRelPaths.Relative](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/relative.md) uri has been set.
- [Relative](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/relative.md): Gets the relative path. If null, the absolute path will be set.

## Methods

- [Equals](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/equals.md): (2 overloads)
- [FromAbsolute](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/fromabsolute.md): (static) Create a path pair from an absolute file path and a base uri.
- [GetHashCode](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/gethashcode.md)
- [Resolve](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/resolve.md): (2 overloads) Resolve the absolute paths implied by this pair.
- [ToString](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/tostring.md)
- [WithRelative](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/withrelative.md): If this pair contains an absolute but not a relative uri, create a new pair with a relative Uri from the baseUri to the [AbsRelPaths.Absolute](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths/absolute.md) uri.
