filegate 1.5.0 copy "filegate: ^1.5.0" to clipboard
filegate: ^1.5.0 copied to clipboard

A Flutter plugin for native file picking, saving, writing, streamed writing, and streamed file reading across Android, iOS, macOS, Windows, and Linux.

example/lib/main.dart

import 'package:filegate/filegate.dart';
import 'package:flutter/material.dart';

import 'src/capabilities_example_page.dart';
import 'src/directory_picker_example_page.dart';
import 'src/file_picker_example_page.dart';
import 'src/read_file_example_page.dart';
import 'src/save_file_example_page.dart';
import 'src/write_file_example_page.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key, this.filegate = const Filegate()});

  final Filegate filegate;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: _ExampleListPage(filegate: filegate));
  }
}

class _ExampleListPage extends StatelessWidget {
  const _ExampleListPage({required this.filegate});

  final Filegate filegate;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('filegate example')),
      body: ListView(
        children: <Widget>[
          ListTile(
            key: const ValueKey<String>('capabilities-example-tile'),
            title: const Text('Capabilities'),
            subtitle: const Text('Inspect supported platform features'),
            trailing: const Icon(Icons.chevron_right),
            onTap: () {
              Navigator.of(context).push(
                MaterialPageRoute<void>(
                  builder: (_) => CapabilitiesExamplePage(filegate: filegate),
                ),
              );
            },
          ),
          ListTile(
            key: const ValueKey<String>('files-example-tile'),
            title: const Text('Files'),
            subtitle: const Text('Pick one or more files'),
            trailing: const Icon(Icons.chevron_right),
            onTap: () {
              Navigator.of(context).push(
                MaterialPageRoute<void>(
                  builder: (_) => FilePickerExamplePage(filegate: filegate),
                ),
              );
            },
          ),
          ListTile(
            key: const ValueKey<String>('directory-example-tile'),
            title: const Text('Directory'),
            subtitle: const Text('Pick a directory and enumerate files'),
            trailing: const Icon(Icons.chevron_right),
            onTap: () {
              Navigator.of(context).push(
                MaterialPageRoute<void>(
                  builder: (_) =>
                      DirectoryPickerExamplePage(filegate: filegate),
                ),
              );
            },
          ),
          ListTile(
            key: const ValueKey<String>('read-example-tile'),
            title: const Text('Read file'),
            subtitle: const Text('Pick a file and preview its bytes'),
            trailing: const Icon(Icons.chevron_right),
            onTap: () {
              Navigator.of(context).push(
                MaterialPageRoute<void>(
                  builder: (_) => ReadFileExamplePage(filegate: filegate),
                ),
              );
            },
          ),
          ListTile(
            key: const ValueKey<String>('save-example-tile'),
            title: const Text('Save file'),
            subtitle: const Text('Save bytes with a native dialog'),
            trailing: const Icon(Icons.chevron_right),
            onTap: () {
              Navigator.of(context).push(
                MaterialPageRoute<void>(
                  builder: (_) => SaveFileExamplePage(filegate: filegate),
                ),
              );
            },
          ),
          ListTile(
            key: const ValueKey<String>('write-example-tile'),
            title: const Text('Write file'),
            subtitle: const Text('Append or replace an existing file'),
            trailing: const Icon(Icons.chevron_right),
            onTap: () {
              Navigator.of(context).push(
                MaterialPageRoute<void>(
                  builder: (_) => WriteFileExamplePage(filegate: filegate),
                ),
              );
            },
          ),
        ],
      ),
    );
  }
}
0
likes
0
points
407
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for native file picking, saving, writing, streamed writing, and streamed file reading across Android, iOS, macOS, Windows, and Linux.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on filegate

Packages that implement filegate