generateRotatedFilename static method

String generateRotatedFilename(
  1. String originalFilename, {
  2. DateTime? timestamp,
  3. String? suffix,
})

Generate rotated filename with timestamp

Implementation

static String generateRotatedFilename(
  String originalFilename, {
  DateTime? timestamp,
  String? suffix,
}) {
  final ts = timestamp ?? DateTime.now();
  final tsString = '${ts.year}${ts.month.toString().padLeft(2, '0')}'
      '${ts.day.toString().padLeft(2, '0')}_'
      '${ts.hour.toString().padLeft(2, '0')}'
      '${ts.minute.toString().padLeft(2, '0')}'
      '${ts.second.toString().padLeft(2, '0')}';

  final parts = originalFilename.split('.');
  if (parts.length > 1) {
    final extension = parts.removeLast();
    final basename = parts.join('.');
    final suffixPart = suffix != null ? '_$suffix' : '';
    return '$basename.$tsString$suffixPart.$extension';
  } else {
    final suffixPart = suffix != null ? '_$suffix' : '';
    return '$originalFilename.$tsString$suffixPart';
  }
}