dotnet add package CodeWithSaar.PathUtility --version 1.0.3
NuGet\Install-Package CodeWithSaar.PathUtility -Version 1.0.3
<PackageReference Include="CodeWithSaar.PathUtility" Version="1.0.3" />
paket add CodeWithSaar.PathUtility --version 1.0.3
#r "nuget: CodeWithSaar.PathUtility, 1.0.3"
// 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
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.
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
- Special characters:
- Reserved device names:
CON, AUX, NUL, COM1 ...
- Special file names:
..(current folder or parent folder)
- Period or space at the end of the files.
|Product||Versions Compatible and additional computed target framework versions.|
|.NET||net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed.|
|.NET Core||netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed.|
|.NET Standard||netstandard2.0 is compatible. netstandard2.1 was computed.|
|.NET Framework||net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed.|
|MonoAndroid||monoandroid was computed.|
|MonoMac||monomac was computed.|
|MonoTouch||monotouch was computed.|
|Tizen||tizen40 was computed. tizen60 was computed.|
|Xamarin.iOS||xamarinios was computed.|
|Xamarin.Mac||xamarinmac was computed.|
|Xamarin.TVOS||xamarintvos was computed.|
|Xamarin.WatchOS||xamarinwatchos was computed.|
- No dependencies.
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.