writeBytesFile static method

Future<FileWriteResult> writeBytesFile({
  1. required String fileName,
  2. required Uint8List bytes,
  3. String? subDirectory,
})

Write raw bytes to fileName in the platform output directory.

Implementation

static Future<FileWriteResult> writeBytesFile({
  required String fileName,
  required Uint8List bytes,
  String? subDirectory,
}) async {
  if (kIsWeb) {
    return FileWriteResult.fail(
        'Direct file write is not supported on web. Use DownloadService.');
  }

  try {
    final dir = await _resolveOutputDirectory(subDirectory);
    final filePath = p.join(dir, fileName);
    final file = File(filePath);
    await file.writeAsBytes(bytes, flush: true);
    return FileWriteResult.ok(file.path);
  } on FileSystemException catch (e) {
    return FileWriteResult.fail('FileSystemException: ${e.message}');
  } catch (e) {
    return FileWriteResult.fail('Unexpected error: $e');
  }
}