andyld97 / Extensions

Some useful code that you need from time to time

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

C# Extensions

Some useful code that you need from time to time

ByteUnit

Now available as a nuget package:
dotnet add package ByteUnit --version 1.0.2

  1. Calculate the length directly into the unit prefix which is appropriate:
var value = ByteUnit.FindUnit(1024);
// value.Length = Your new length
// value.Type = Your new unit prefix.
  1. Calculate e.g. 1024 KB to MB
var value = ByteUnit.From(new ByteUnit(1024.0, Unit.KB), Unit.MB);
// or alternative
var value = ByteUnit.From(ByteUnit.FromKB(1024), Unit.MB);
  1. Compare two ByteUnits
var fileSize = ByteUnit.FromFileInfo(new System.IO.FileInfo("PATH"));

if (fileSize < ByteUnit.FromMB(10))
{
    // e.g. only download this file if it's less than 10MB big.
}
  1. Easy conversation
var value = ByteUnit.Parse("999.5 MB/s");
var gb = value.To(Unit.GB);
  1. Parse from string
var value = ByteUnit.Parse("100 MB");
// var value = ByteUnit.Parse("999.5 MB/s");
// you can also use TryParse 

ByteUnit overrides the default ToString()-Method, so you can use it to format your values in strings. There is also an overload for "bytes per seconds", this will add /s to end of the formatted string!

FileAssociation

Useful for associate a file extension with your program (with icon)

// Add
FileAssociation.SetFileAssociation("_NAME_", "_EXTENSION_", "_PATH_TO_ICO", "_PATH_TO_EXE"); 

// Delete
FileAssociation.DeleteFileAssociation("_NAME_", "_EXTENSION_");

ZipHelper

// Create a zip archive
await ZipHelper.CreateZipFileFromDirectoryAsync(@"F:\Data", @"C:\Users\test\Desktop\test.zip");

// Extract a zip archive
await ZipHelper.ExtractZipFileAsync(@"C:\Users\test\Desktop\test.zip", @"F:\Data");
  • You can also pass a byte[] to ExtractZipFileAsync(...)!
  • All methods are available synchronously (e.g. ExtractZipFiles(...)) and asynchronously (using async and await)!
  • If you are not using .NET Core there is no System.IO.Path.GetRelative Method. But you can use this port instead!

Hash

// Create hash from file
string hash = await Hash.CreateHashFromFileAsync(@"F:\Data\test.iso");

About

Some useful code that you need from time to time

License:MIT License


Languages

Language:C# 100.0%