NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #457 most downloaded on pub.dev
A common platform interface for the file_picker plugin, defining the shared API surface and data contracts across platforms.
Last release 24 days ago
14 Sep 2026
Ships unpredictably
gaps range from 8 days to 5.9 years
Nearly every release is documented
notes for 16 of 17 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
17 releases · first in 2020
BREAKING CHANGE: PlatformFile.length() now returns Future instead of Future , matching lengthSync(). null means the length could not be determined (e.…
PlatformFile.length() now returns Future<int?> instead of Future<int>, matching lengthSync(). null means the length could not be determined (e.g. a failed disk read), distinct from a genuinely empty file, which still returns 0. Previously both cases returned 0, with no way to tell them apart. #2197From now on, you'll be able to use file_picker with all your platforms, a big thanks to @philenius, which made this possible and allowed the flutter_file_picker_desktop to be merged with this one.
Have in mind that because of platforms differences, that the following API methods aren't available to use on Desktop:
onFileLoading() isn't necessary, hence, FilePickerStatus won't change, since it hasn't any effect on those;clearTemporaryFiles() isn't necessary since those files aren't created - the platforms will always use a reference to the original file;dialogTitle which can be used to set the title of the modal dialog when picking the files;Adds onFileLoading() to Web. (#766).
One column per quarter.
Each platform package (android_file_picker, file_picker_darwin, file_picker_linux, windows_file_picker, file_picker_web) had no banner at all. Added o
Each platform package (android_file_picker, file_picker_darwin,
file_picker_linux, windows_file_picker, file_picker_web) had no banner at
all. Added one for each, reusing the root banner's style (gradient, floating
file cards, title) with a platform specific subtitle, a single platform pill
instead of the six way row, and a translucent watermark icon.
The Android, Apple, Tux and Chrome watermarks are traced from the official
marks rather than approximated by hand:
Windows uses a generic four pane grid instead of the Microsoft flag.
acceptLabel to WindowsOptions and DarwinOptions, letting callers set the confirm button text of the file dialog. On Windows it applies to pickFile(), pickFiles(), getDirectoryPath(), and saveFile(); on macOS only to pickFile()/pickFiles() (getDirectoryPath()/saveFile() do not accept DarwinOptions). Has no effect on iOS, Android or Web. #1861melos list returns packages alphabetically, so prepare would tag android_file_picker before the platform interface it depends on. Each tag starts its
melos list returns packages alphabetically, so prepare would tag
android_file_picker before the platform interface it depends on. Each
tag starts its own independent publish run, so that package would reach
pub.dev asking for an interface version that is not published yet.
melos publish sorts by the dependency graph internally, which is why
the dry run always looked right, but the tagging never did. It now takes
the order from melos list --graph and only tags a package once
everything it depends on has been tagged.
On the release this repository is about to cut, that turns
android_file_picker, file_picker, file_picker_darwin, file_picker_linux,
file_picker_platform_interface, file_picker_web, windows_file_picker
into
file_picker_platform_interface, android_file_picker, file_picker_darwin,
file_picker_linux, windows_file_picker, file_picker_web, file_picker
which is the order melos publishes in.
PlatformFile.lengthSync(), a nullable int returning the file's length in bytes as provided by the underlying file picker result, or null when it did not report one. Named to pair with the existing length(), the same way dart:io's File does.Merge pull request #2182 from miguelpruivo/docs/darwin-asset-represen…
Merge pull request #2182 from miguelpruivo/docs/darwin-asset-represen…
FilePickerPlatform.skipEntitlementsChecks(), a no-op default hook that platform implementations can override. Lets file_picker dispatch through the platform interface instead of importing file_picker_darwin directly, which kept the facade package from being wasm compatible.DarwinOptions and DarwinAssetRepresentationMode, letting callers request a specific asset representation (current or compatible) for media selected from the iOS photo library, instead of always using the system default (automatic). Restores functionality that was available before the Darwin implementation was rewritten (previously exposed as a way to disable compression), useful to avoid expensive transcoding for large HEVC, HDR, or slow-motion videos.Merge pull request #2168 from miguelpruivo/fix/publish-workflow-oidc-…
Merge pull request #2168 from miguelpruivo/fix/publish-workflow-oidc-…
PlatformFile.extension, restoring the pre-12.0 convenience getter that was dropped during the federated rewrite. Returns the file extension of name without the leading dot, or null if there is none.Improved package description, added example, and added missing API documentation.
Unified platform interface release for federated file_picker architecture.
file_picker architecture.Deprecates interface in favor of standalone file_picker for all platforms.
file_picker for all platforms.Breaking Changes
FilePicker.platform.pickFiles() and extract the files from FilePickerResult;File instances from dart:io and dart:html required stubbing and bloated code, it's no longer available as helper method so you'll have to instanciate a File with the picked paths;New features
FilePicker.platform.pickFiles() with desired parameters which will return a FilePickerResult with a List<PlatformFile> containing the picked data;FilePickerResult and PlatformFile classes with helper getters;withData that allows file data to be immediately available on memory as Uint8List (part of PlatformFile instance). This is particularly helpful on web or if you are going to upload to somehwere else;Removed
getFilePath(), getMultiFilePath(), getFile() and getMultiFile() are no longer availble in favor o pickFiles();Removes allowCompression from interface as it should only be used from file_picker (Android & iOS).
allowCompression from interface as it should only be used from file_picker (Android & iOS).Bug fix: Fixes an issue on Android, where other activity would try to call FilePicker's result object when it shouldn't.
Adds allowCompression parameter.
allowCompression parameter.Breaking changes
FileType.CAMERA is no longer available, if you need it, you can use this package along with image_picker.New features
getMultiFilePath() method which will return a Map<String,String> with all paths from selected files, where the key matches the file name and the value its path. Optionally, it also supports filtering by file extension, otherwise all files will be selectable. Nevertheless, you should keep using getFilePath() for single path picking.FileType.AUDIO to pick audio files. In iOS this will let you select from your music library. Paths from DRM protected files won't be loaded (see README for more details).getFile() utility method that does the same of getFilePath() but returns a File object instead, for the returned path.Bug fixes and updates
* Adds FilePickerStatus.
FilePickerStatus.Breaking change: Migrate from the deprecated original Android Support Library to AndroidX. This shouldn't result in any functional changes, but it requires any Android apps using this plugin to also migrate if they're using the original support library.
* Implements getDirectoryPath().
getDirectoryPath().Breaking changes
FileType.PDF was removed since now it can be used along with custom file types by using the FileType.CUSTOM and providing the file extension (e.g. PDF, SVG, ZIP, etc.).FileType.CAPTURE is now FileType.CAMERANew features
FileType.CUSTOMBug fixes and updates
file_picker* Implements getFiles().
getFiles().* Removes getFilePath().
getFilePath().Updates methods from File Picker interface.
Nothing published for this version
Added File Picker platform interface.
Your coding agent can read these notes before it upgrades. Set up the MCP server →