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.