proper_filesize 1.0.2 copy "proper_filesize: ^1.0.2" to clipboard
proper_filesize: ^1.0.2 copied to clipboard

Standalone file size conversion and formatting library. Generate human-readable output for UIs. Supports metric/binary units (KB, KiB, MB, MiB, etc.)

example/example.dart

// ignore_for_file: avoid_print, document_ignores

import "package:proper_filesize/proper_filesize.dart";

void main() {
  // Suppose you want to convert this string into an
  // integer representation of bytes
  const String binaryFilesize = "1.2 EiB";
  final int binaryBytes = FileSize.parse(binaryFilesize).size.toInt();

  print(
    "$binaryFilesize is $binaryBytes bytes",
  ); // 1.2 EiB is 1383505805528216320 bytes

  // Also supports metric units
  const String metricFilesize = "1.2 EB";
  final int metricBytes = FileSize.parse(metricFilesize).size.toInt();

  print(
    "$metricFilesize is $metricBytes bytes",
  ); // 1.2 EB is 1200000000000000000 bytes

  // Now suppose you want to generate a human readable filesize from 1.24356e9
  // bytes up to 3 decimals
  final int bytes = 1.24356e9.toInt();
  final String metricHumanReadableFilesize = FileSize.fromBytes(bytes).toString(
    unit: Unit.auto(size: bytes, baseType: BaseType.metric),
  );
  print(
    "$bytes bytes is $metricHumanReadableFilesize",
  ); // 1243560000 bytes is 1.244 GB

  final String binaryHumanReadableFilesize =
      FileSize.fromBytes(bytes).toString();
  print(
    "$bytes bytes is $binaryHumanReadableFilesize",
  ); // 1243560000 bytes is 1.158 GiB

  // Generate a binary unit string with 2 decimal places
  final String binaryFilesize2Decimals =
      FileSize.fromBytes(bytes).toString(decimals: 2);
  print(
    "$bytes bytes is $binaryFilesize2Decimals",
  ); // 1243560000 bytes is 1.16 GiB

  // Generate a metric unit string with the full unit name ("gigabyte")
  final String metricFilesizeLong = FileSize.fromBytes(bytes).toString(
    unit: Unit.auto(size: bytes, baseType: BaseType.metric),
    formatType: FormatType.long,
  );
  print(
    "$bytes bytes is $metricFilesizeLong",
  ); // 1243560000 bytes is 1.244 gigabytes

  // Generate a binary unit string with the full unit name ("gibibyte")
  final String binaryFilesizeLong = FileSize.fromBytes(bytes).toString(
    unit: Unit.auto(size: bytes, baseType: BaseType.binary),
    formatType: FormatType.long,
  );
  print(
    "$bytes bytes is $binaryFilesizeLong",
  ); // 1243560000 bytes is 1.158 gibibytes

  // Generate a string with the explicit unit "gigabyte"
  final String explicitUnitFilesize =
      FileSize.fromBytes(bytes).toString(unit: Unit.gigabyte);
  print(
    "$bytes bytes is $explicitUnitFilesize",
  ); // 1243560000 bytes is 1.244 GB

  // Parse a long-format string
  const String longFormatFilesize = "1.45 gibibytes";
  final int longFormatBytes = FileSize.parse(longFormatFilesize).size.toInt();
  print(
    "$longFormatFilesize is $longFormatBytes bytes",
  ); // 1.45 gibibytes is 1556925644 bytes

  // Convert a unit to a String with explicit unit conversion
  const num terabyteSize = 20.59;
  final String explicitUnitConversionStr =
      FileSize.fromUnit(size: terabyteSize, unit: Unit.terabyte)
          .toString(unit: Unit.gibibyte);
  print(
    "$terabyteSize terabytes is $explicitUnitConversionStr",
  ); // 20.59 terabytes is 19175.932 GiB

  // Convert a unit to a another size with explicit unit
  const num gigabytesize = 401.26;
  final num explicitUnitConversion =
      FileSize.fromUnit(size: gigabytesize, unit: Unit.gigabyte)
          .toSize(unit: Unit.mebibyte);
  print(
    "$gigabytesize gigabytes is $explicitUnitConversion mebibytes",
  ); // 401.26 gigabytes is 382671.3562011719 mebibytes
}
7
likes
160
points
2.34k
downloads

Publisher

unverified uploader

Weekly Downloads

Standalone file size conversion and formatting library. Generate human-readable output for UIs. Supports metric/binary units (KB, KiB, MB, MiB, etc.)

Repository (GitHub)

Documentation

API reference

License

BSD-3-Clause (license)

More

Packages that depend on proper_filesize