Some useful code that you need from time to time
Now available as a nuget package:
dotnet add package ByteUnit --version 1.0.2
- 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.
- 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);
- Compare two
ByteUnit
s
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.
}
- Easy conversation
var value = ByteUnit.Parse("999.5 MB/s");
var gb = value.To(Unit.GB);
- 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!
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_");
// 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[]
toExtractZipFileAsync(...)
! - All methods are available synchronously (e.g.
ExtractZipFiles(...)
) and asynchronously (usingasync
andawait
)! - If you are not using .NET Core there is no
System.IO.Path.GetRelative
Method. But you can use this port instead!
// Create hash from file
string hash = await Hash.CreateHashFromFileAsync(@"F:\Data\test.iso");