一個針對 Windows 的 file_picker 插件特定實作,利用 Win32 COM API 提供原生檔案與資料夾選擇功能。它讓 Flutter 應用程式在 Windows 上能夠存取系統原生檔案對話方塊,確保與平台標準介面一致的使用者體驗。此套件專為與更廣泛的 file_picker 生態系統無縫整合而設計,支援檔案與資料夾選擇,設定簡單。該套件作為 flutter_file_picker 倉儲的一部分進行維護,僅針對 Windows 平台。
適用情境
在桌面應用程式中選擇檔案
選擇資料匯入的目錄
在 Windows Flutter 應用中整合原生檔案對話方塊
支援來自 Windows 客戶端的檔案上傳
啟用文件管理工作流程
主要特色
使用原生 Win32 COM API
提供系統原生檔案選擇器 UI
僅限 Windows 的平台支援
與 file_picker 的無縫整合
最小化設定和組態
適合對象
針對 Windows 桌面的 Flutter 開發人員
Windows 上需要原生檔案選擇的應用程式
使用 file_picker 插件生態系統的專案
需要可靠檔案瀏覽功能的桌面應用程式
尋求平台一致性的開發者
使用建議
僅適用於 Windows 平台
需要 Win32 API 相容性
依賴於主檔案_picker 包
僅限檔案與目錄選擇
不支援其他作業系統
原始 README
以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。
File Picker
A Flutter plugin that lets you use the native file explorer to pick single or multiple files, with extension filtering, directory selection, and save-file dialogs, across Android, iOS, Linux, macOS, Windows, and Web.
This repository is a Melos workspace hosting file_picker as a federated plugin: a single cross-platform API package on top of one implementation package per platform, all versioned and published independently.
Web implementation, including Wasm compilation support.
Almost all apps should only ever depend on file_picker directly. The platform packages are pulled in transitively and registered automatically by Flutter's plugin system; you only reach for one of them directly if you need a platform-specific API that isn't exposed on the shared facade (for example FilePickerDarwin.skipEntitlementsChecks() on macOS).
Quick start
dependencies:file_picker:^13.0.0
import'package:file_picker/file_picker.dart';
final file = awaitFilePicker.pickFile();
if (file != null) {
print(file.name);
print(await file.length()); // Returns Future<int?> (or use file.lengthSync())
}
See packages/file_picker/README.md for the full feature list, platform compatibility chart, and more usage examples (multiple files, extension filters, directory picking, save-file dialogs).
Migration
Upgrading to v13? See the Migrating to v13 Guide for details on PlatformFile.length() returning Future<int?> and the removal of legacy v12-deprecated parameters.
Upgrading from pre-v12? See the Migrating to v12 Guide for the federated architecture changes (FilePicker.pickFiles() returning List<PlatformFile>, platform options, and streaming).
Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request, it covers testing requirements, versioning, and changelog conventions for this workspace.
To work on this repository locally:
dart pub global activate melos
melos bootstrap
melos run analyze # flutter analyze across every package
melos run test# flutter test across every package
Each package keeps its own pubspec.yaml and CHANGELOG.md and is released independently, only the package(s) you actually changed need a version bump.
Credits
file_picker was created and maintained by Miguel Ruivo, starting in 2018, growing it from a single Android/iOS plugin into the federated, cross-platform package it is today. This repository continues that work under new ownership, built entirely on the foundation of his years of effort.
Thank you, Miguel.
License
MIT, see LICENSE. Every package in this repository is released under the same license.