open_system_folder 0.1.2 copy "open_system_folder: ^0.1.2" to clipboard
open_system_folder: ^0.1.2 copied to clipboard

Flutter plugin to open system folder in the File Manager.

example/lib/main.dart

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

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(home: HomePage());
  }
}

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  List<SystemFolder> get _testFolders => [
        SystemFolder.documents,
        SystemFolder.downloads,
      ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('OpenSystemFolder Example')),
      body: Center(
        child: ListView.separated(
          itemCount: _testFolders.length,
          shrinkWrap: true,
          physics: const NeverScrollableScrollPhysics(),
          itemBuilder: (context, index) {
            final item = _testFolders[index];
            return Padding(
              padding: const EdgeInsets.symmetric(horizontal: 32),
              child: ElevatedButton(
                onPressed: () async => _openFolder(context, item),
                child: Text('Open ${item.name}'),
              ),
            );
          },
          separatorBuilder: (context, index) => const SizedBox(
            height: 16,
          ),
        ),
      ),
    );
  }

  Future<void> _openFolder(
    BuildContext context,
    SystemFolder folder,
  ) async {
    if (!context.mounted) return;
    try {
      await openSystemFolder(
        systemFolder: folder,
        // Android: in the Download or Documents
        // iOS: in the your App folder
        // create folder 'Some' and then inside 'some' create folder 'One'.
        // Then uncomment next line:
        // subPath: 'Some/One',
      );
    } catch (error) {
      if (!context.mounted) return;
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(
          backgroundColor: Theme.of(context).primaryColor,
          content: Text('$error'),
        ),
      );
    }
  }
}
1
likes
160
points
36
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter plugin to open system folder in the File Manager.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, open_system_folder_android, open_system_folder_ios, open_system_folder_platform_interface

More

Packages that depend on open_system_folder