avoid_ slow_ async_ io
Avoid slow asynchronous dart:io methods.
Details
#AVOID using the following asynchronous file I/O methods because they are much slower than their synchronous counterparts.
Directory.existsDirectory.statFile.lastModifiedFile.existsFile.statFileSystemEntity.isDirectoryFileSystemEntity.isFileFileSystemEntity.isLinkFileSystemEntity.type
BAD:
import 'dart:io';
Future<Null> someFunction() async {
var file = File('/path/to/my/file');
var now = DateTime.now();
if ((await file.lastModified()).isBefore(now)) print('before'); // LINT
}
GOOD:
import 'dart:io';
Future<Null> someFunction() async {
var file = File('/path/to/my/file');
var now = DateTime.now();
if (file.lastModifiedSync().isBefore(now)) print('before'); // OK
}
Enable
#
To enable the avoid_slow_async_io rule, add avoid_slow_async_io under
linter > rules in your analysis_options.yaml
file:
linter:
rules:
- avoid_slow_async_io
If you're instead using the YAML map syntax to configure linter rules,
add avoid_slow_async_io: true under linter > rules:
linter:
rules:
avoid_slow_async_io: true
Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Report an issue.