createOutputFile method

Future<File> createOutputFile(
  1. String filename
)

Create an output file with a unique name if needed

Implementation

Future<File> createOutputFile(String filename) async {
  final outputDir = await createOutputDirectory();
  var outputFile = File(path.join(outputDir.path, filename));

  // If file exists, create a unique name
  if (outputFile.existsSync()) {
    final baseName = path.basenameWithoutExtension(filename);
    final extension = path.extension(filename);
    var counter = 1;

    do {
      final newFilename = '${baseName}_$counter$extension';
      outputFile = File(path.join(outputDir.path, newFilename));
      counter++;
    } while (outputFile.existsSync());
  }

  return outputFile;
}