برای ذخیره فایل خیلی راحت با چند تا سرچ بصورت کلی دستتون میاد اما حالا من هم توضیح میدم.
نکته اصلی این مقاله ذخیره فایل در api 29 هستش که من اذیت شدم.
موارد زیر را به AndroidManifest اصافه کنید
مجوز ها
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
حالا کافیه یک نام و متن دلخواه را به SaveFile ارسال کنید
Future<void> saveFile(String fileName, String content) async { Directory? directory; try { directory = Directory('/storage/emulated/0/Download'); // بررسی وجود فولدر و ایجاد آن در صورت عدم وجود bool? hasExisted = await directory?.exists(); if (!hasExisted!) { await directory?.create(recursive: true); } // فایل برای ذخیره File file = File('${directory?.path}/${fileName}.txt'); if (!file.existsSync()) { await file.create(); } // ذخیره محتوا به صورت متنی await file.writeAsString(content); } catch (e) { // مدیریت خطاها print('Error while saving file: $e'); // اگر فایل وجود دارد، آن را حذف کنید File file = File('${directory?.path}/${fileName}.txt'); if (file.existsSync()) { file.deleteSync(); } } }
نکته مهم برای API 29 شما اجازه دسترسی به آدرس'/storage/emulated/0/Download' را ندارید برای این کار کافیه
<application android:requestLegacyExternalStorage="true">
را به AndroidManifest اصافه کنید.