Если это может помочь, когда приложение проверяется / запускается на тестовых серверах для Google Play, я заметил любопытный побочный эффект, который заключается в том, что я не могу получить доступ к каталогу кэша для перечисления в Android:
FileSystemException: Directory listing failed, path = '/data/user/0/my.package.name/cache/random_folder/' (OS Error: Invalid argument, errno = 22)
Код, который вызывает эту ошибку:
Future<List<File>> getFilesInDirectory(String directoryPath) async {
// `directoryPath` is fetched on Android side with `context.cacheDir`
final cacheDir = Directory(directoryPath);
final files = <File>[];
// This call succeeds, .. I still don't get why :D
if (!cacheDir.existsSync()) return files;
final completer = Completer();
// Tries to list all files in the folder
cacheDir.list(followLinks: false).listen(
(file) {
if (file is! File) {
return;
}
files.add(file as File);
},
onDone: () => completer.complete(),
onError: (err) {
log(err) // <---- This is where I get the error
}
);
await completer.future;
return files;
}