FLUTTER ECOSYSTEM

halildurmus/filepicker_windows

Seletor de arquivos e diretórios para Windows que usa controles de diálogo comuns.

Capa do projeto filepicker_windows
Stars
70
Forks
19
Último push (UTC)
26 de fev. de 2026
Status do projeto
Arquivado
Halil Durmus GitHub avatar
GITHUB User

Halil Durmus ↗

Software Engineer • Dart Enthusiast💙🎯

LinguagensDartC++CMakeC

Tópicos técnicos

Dependências usadas

Lista de dependências 7 itens
  • ffi^2.2.0
  • ffi_leak_tracker^0.1.0
  • win32^6.0.0
  • checksDesenvolvimento^0.3.1
  • halildurmus_hooksDesenvolvimento^0.1.1
  • halildurmus_lintsDesenvolvimento^2.0.0
  • testDesenvolvimento^1.29.0

README original

Texto original em inglês. Visite o GitHub para a versão atual.

Expandir / recolher README

This package has moved

The package can now be found at https://github.com/halildurmus/win32/tree/main/packages/filepicker_windows.


ci Package: filepicker_windows Publisher: halildurmus.dev Language: Dart License: BSD-3-Clause

File and directory picker for Windows that uses common dialog controls.

This package builds on top of the package:win32 and provides a high-level abstraction over native file picker APIs. It eliminates the need to work directly with FFI, raw pointers, or low-level Win32 calls while preserving performance and correctness.

✨ Features

  • 📂 Open a single file or multiple files simultaneously
  • 💾 Save a file
  • 📁 Select a directory
  • 🔍 Filter by file type with friendly display names
  • 📌 Add custom places to the dialog's navigation pane
  • 🪟 Pin to the correct window — always opens as a modal in front of your app

🚀 Getting Started

Add the package to your pubspec.yaml:

dependencies:
  filepicker_windows: ^3.0.0

Then import it:

import 'package:filepicker_windows/filepicker_windows.dart';

⚡ Quick Example

Show a file open dialog:

import 'package:filepicker_windows/filepicker_windows.dart';

void main() {
  final picker = OpenFilePicker()
    ..filterSpecification = {
      'Word Document (*.doc)': '*.doc',
      'Web Page (*.htm; *.html)': '*.htm;*.html',
      'Text Document (*.txt)': '*.txt',
      'All Files': '*.*',
    }
    ..defaultFilterIndex = 0
    ..defaultExtension = 'doc'
    ..title = 'Select a document';

  final file = picker.getFile();
  if (file != null) {
    print('Selected file: ${file.path}');
  } else {
    print('No file selected.');
  }
}

More examples — including multi-file selection, save dialogs, directory picking, and custom places — are available in the example directory.

For a more advanced demonstration, see example/wallpaper/, a Flutter app that uses the picker to select an image and set it as the desktop wallpaper.

📝 Documentation

Full API reference is available here:

👉 API Reference.

Additional usage examples are located in the example directory.

🐞 Features and Bugs

If you encounter bugs or need additional functionality, please file an issue.