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.exists
Directory.stat
File.lastModified
File.exists
File.stat
FileSystemEntity.isDirectory
FileSystemEntity.isFile
FileSystemEntity.isLink
FileSystemEntity.type
BAD:
dart
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:
dart
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:
analysis_options.yaml
yaml
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:
analysis_options.yaml
yaml
linter:
rules:
avoid_slow_async_io: true
Was this page's content helpful?
Thank you for your feedback!
Provide details Thank you for your feedback! Please let us know what we can do to improve.
Provide details Unless stated otherwise, the documentation on this site reflects Dart 3.8.1. Page last updated on 2025-03-07. View source or report an issue.