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();
}
}