CodeWithSaar.PathUtility
1.0.3
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
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
- 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.
Reference
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-browser 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. |
-
.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.