Saltar al contenido principal

GetBestUnit

Selecciona la unidad más apropiada para el conteo de bytes dado y retorna el valor convertido.

Firma

(double size, FileSizeUnit unit) GetBestUnit(double bytes, bool useIec = false)

Parámetros

ParámetroTipoDefectoDescripción
bytesdoubleEl tamaño en bytes. Debe ser ≥ 0.
useIecboolfalseCuando es true, retorna unidades IEC (KiB, MiB, …).

Retorna

Una tupla (double size, FileSizeUnit unit) con el valor convertido y la unidad seleccionada.

Excepciones

ExcepciónCondición
ArgumentExceptionbytes es negativo.

Ejemplos

var vfs = new ValiFileSize();

var (size, unit) = vfs.GetBestUnit(1_500_000_000);
// size → ~1.40, unit → FileSizeUnit.Gigabytes

// IEC
var (sizeIec, unitIec) = vfs.GetBestUnit(1_500_000_000, useIec: true);
// sizeIec → ~1.40, unitIec → FileSizeUnit.Gibibytes

// Valor pequeño
var (sizeKb, unitKb) = vfs.GetBestUnit(2048);
// sizeKb → 2, unitKb → FileSizeUnit.Kilobytes

Lógica de selección

El método elige la unidad más grande para la cual el valor convertido es ≥ 1. Para valores menores a 1 KB retorna FileSizeUnit.Bytes.