halildurmus/filepicker_windows
适用于 Windows 的文件和目录选择器,使用通用对话框控件。
- Stars
- 70
- Forks
- 19
- 最近推送(UTC)
- 2026年2月26日
- 项目状态
- 已归档
技术话题
使用的依赖
原始 README
以下为英文项目原文快照,最新内容请访问 GitHub。
展开 / 收起项目 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:
Additional usage examples are located in the example directory.
🐞 Features and Bugs
If you encounter bugs or need additional functionality, please file an issue.