detectFileIndex method

void detectFileIndex()

Detects file index based on same filenamePrefix and filenamePostfix and based on current files in the log directory.

Implementation

void detectFileIndex() {
  Directory rootDir;

  if (filenamePrefix.contains(Platform.pathSeparator)) {
    /// Create if separator has directories
    Directory(filenamePrefix).parent.createSync(recursive: true);
  } else {
    rootDir = Directory(filenamePrefix);
    if (!rootDir.existsSync()) {
      /// no files created yet.
      _fileIndex = 0;
      rollToNextFile();
      return;
    }
  }

  rootDir = Directory(filenamePrefix).parent;

  final logListIndexes = rootDir
      .listSync()
      .map((fe) => getLogIndex(fe.path))
      .where((i) => i >= 0)
      .toList();
  logListIndexes.sort();
  print('log list indexes: $logListIndexes');
  if (logListIndexes.isNotEmpty) {
    final max = logListIndexes.last;
    _fileIndex = max;
    if (_isFileOverSize(_logFile(max))) {
      rollToNextFile();
    } else {
      outputFileName = _currentFile();
      print('Logfile is $outputFileName');
    }
  } else {
    _fileIndex = 0;
    rollToNextFile();
  }
}