SymbolicLink

README
Login

SymbolicLink is a small utility library that provides cross-platform support for symbolic links.

Installation

You can install SymbolicLink via NuGet or download a binary release.

To build SymbolicLink from source you will need an F# 4.1 compiler (or newer) and a .NET development environment. The .sln and .fsproj files in the source directories should be understood by .NET Core command line tools, MSBuild or IDEs such as VSCode or VisualStudio.

Usage

SymbolicLink is a library. The Murphy.SymbolicLink namespace contains a SymbolicLink module and several extension methods for classes in the System.IO namespace.

Here are some usage examples for the library:

#r "Murphy.SymbolicLink"
open System
open Murphy.SymbolicLink

// Create a new symbolic link "a" that points to "b":
SymbolicLink.create "b" "a"
IO.File.CreateSymbolicLink("a", "b")

// Resolve all links in the path "a":
SymbolicLink.resolve "a" |> printfn "a -> %s"
IO.Path.GetResolvedPath("a") |> printfn "a -> %s"

// Read the target of the symbolic link "a":
SymbolicLink.read "a"
|> function
  | Ok target -> printfn "a -> %s" target
  | Error err -> eprintfn "%O" err

try
  IO.File.ReadSymbolicLink("a")
  |> printfn "a -> %s"
with
| err -> eprintfn "%O" err