File Saver Z

0

A customable file saver and file picker package that makes it easy for user to browse folder and save file or pick files in android.

Productivity

dart
flutter
flutter-package
pub-dev

File Saver Z

A customizable file saver and file picker package that simplifies browsing folders, saving files, and picking files in Android.

Preview

Preview

Install

Add the following to your pubspec.yaml:

dependencies:
  filesaverz: ^3.1.0

Then, add the required permission in your AndroidManifest.xml.

If you encounter a MissingPluginException error (No implementation found for method checkPermissionStatus on channel flutter.baseflow.com/permissions/methods), try fixing it by adding the following to your app/build.gradle:

buildTypes {
    release {
        shrinkResources false
        minifyEnabled false
        signingConfig signingConfigs.release
    }
}

Import the filesaverz package:

import 'package:filesaverz/filesaverz.dart';

Usage

First, set up the FileSaver widget like this:

FileSaver fileSaver = FileSaver(
  fileTypes: const ['txt', 'pdf'],
  initialFileName: 'Untitled File',
);

Or use a customizable FileSaver like this:

FileSaver fileSaver = FileSaver.builder(
  fileTypes: const ['txt', 'pdf'],
  initialFileName: 'Untitled File',
  headerBuilder: (context, state) => /* Your Widget */,
  bodyBuilder: (context, state) => /* Your Widget */,
  footerBuilder: (context, state) => /* Your Widget */,
);

Then, in an asynchronous function, use the following:

Getting selected path from saving file:

String? path = await fileSaver.getPath(context);

Calling writeAsBytes method:

fileSaver.writeAsBytes(bytes, context: context);

Calling writeAsBytesSync method:

fileSaver.writeAsBytesSync(bytes, context: context);

Calling writeAsString method:

fileSaver.writeAsString(contents, context: context);

Calling writeAsStringSync method:

fileSaver.writeAsStringSync(contents, context: context);

Picking a single file:

File? file = await fileSaver.pickFile(context);

Picking multiple files:

List<File>? files = await fileSaver.pickFiles(context);

Documentation

Property

headerBuilder

An optional builder:

(context, state) {
  return Text('My Custom Header Widget');
}
bodyBuilder

An optional builder:

(context, state) {
  return Text('My Custom Body Widget');
}
footerBuilder

An optional builder:

(context, state) {
  return Text('My Custom Footer Widget');
}
style

Set custom color, text style, icon, and displayed text:

FileSaverStyle(
  primaryColor: Colors.blue,
  secondaryColor: Colors.white,
  primaryTextStyle: TextStyle(),
  secondaryTextStyle: TextStyle(),
  icons: [
    FileSaverIcon(icon: (path) => Icon(Icons.default)),
    FileSaverIcon.directory(icon: (path) => Icon(Icons.folder)),
    FileSaverIcon.file(fileType: 'jpg', icon: (path) => Image.file(File(path))),
  ],
  text: FileSaverText(
    popupNo: 'Nay',
    popupYes: 'Sí',
  ),
)
initialFileName

This property is used when you call the saving method:

Company Screenshot