CodeWithSaar.PathUtility 1.0.3

.NET Standard 2.0
dotnet add package CodeWithSaar.PathUtility --version 1.0.3
NuGet\Install-Package CodeWithSaar.PathUtility -Version 1.0.3
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CodeWithSaar.PathUtility" Version="1.0.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CodeWithSaar.PathUtility --version 1.0.3
#r "nuget: CodeWithSaar.PathUtility, 1.0.3"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install CodeWithSaar.PathUtility as a Cake Addin
#addin nuget:?package=CodeWithSaar.PathUtility&version=1.0.3

// Install CodeWithSaar.PathUtility as a Cake Tool
#tool nuget:?package=CodeWithSaar.PathUtility&version=1.0.3

PathUtility

Welcome to PathUtility.

This is a small utility to encode / decode file names, so that any characters could be used as a file or folder name.

Scenario

You want to leverage folder name for category of the books, and book name as file name, for your application, for example:

Books
└ Thriller
    │ Book1
    └ Book2

That make sense. However, not all the characters are allowed, for example, :, *, ?. You also can't end a filename with a period .. Imaging books like this:

Books
└ Unknown*                                          # `*` isn't allowed
    │ Into the Abyss: An Extraordinary True Story   # `:` isn't allowed
    | Do Androids Dream of Electric Sheep?          # `?` isn't allowed

To address that, this library encodes string for those special characters and rules. For example

using CodeWithSaar;
string encodedBookName = FileUtility.Encode("Into the Abyss: An Extraordinary True Story");
// encodedBookName will be: Into the Abyss%003A An Extraordinary True Story

And to read the folder and get the string back:

using CodeWithSaar;
string originalString = FileUtility.Decode("Into the Abyss%003A An Extraordinary True Story");
// originalString will be: Into the Abyss: An Extraordinary True Story

What does this library handles

  1. Special characters: <>:\"/\\|?*
  2. Reserved device names: CON, AUX, NUL, COM1 ...
  3. Special file names: ., .. (current folder or parent folder)
  4. Period or space at the end of the files.

Reference

Naming Files, Paths, and Namespaces

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.3 202 11/13/2021
1.0.2 220 11/7/2021
1.0.1 272 11/7/2021