writeTextFile static method

Future<FileWriteResult> writeTextFile({
  1. required String fileName,
  2. required String content,
  3. String? subDirectory,
})

Write content as UTF-8 text to fileName in the platform output dir.

subDirectory is an optional relative sub-path (e.g. 'odoo/views').

Implementation

static Future<FileWriteResult> writeTextFile({
  required String fileName,
  required String content,
  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.writeAsString(content, 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');
  }
}