सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।
file_picker_platform_interface पैकेज फ़ाइल_पिकर प्लगइन के लिए कई प्लेटफॉर्मों पर साझा API सतह और डेटा कॉन्ट्रैक्ट प्रदान करता है। यह एक सामान्य आधार के रूप में काम करता है, जिससे Android, iOS, Linux, macOS, Web और Windows पर सुसंगत फ़ाइल चयन कार्यक्षमता सुनिश्चित होती है। प्लेटफॉर्म-अनावश्यक इंटरफेस को परिभाषित करके, यह क्रॉस-प्लेटफॉर्म विकास को सरल बनाता है और यह सुनिश्चित करता है कि नीचे के ऑपरेटिंग सिस्टम पर निर्भर रहे बिना एक समान व्यवहार हो। यह पैकेज ऐप या प्लगइन बनाने वाले विकासकर्ताओं के लिए आवश्यक है जिन्हें विश्वसनीय फ़ाइल चयन क्षमता की आवश्यकता होती है।
उपयोग
प्लेटफॉर्म-स्थानीय फ़ाइल चयन
फ़ाइल चयन प्लगइन विकास
एकीकृत फ़ाइल चयन एपीआई
बहुपлатफॉर्म एप्लिकेशन इंटीग्रेशन
साझा डेटा कॉन्ट्रैक्ट कार्यान्वयन
प्लेटफॉर्म के बीच सुसंगतता बनाए रखना
मुख्य विशेषताएँ
प्लेटफॉर्म-अनुकूल API डिज़ाइन
साझा डेटा कॉन्ट्रैक्ट
छह प्रमुख प्लेटफॉर्म के लिए समर्थन
प्लगइन विस्तार की अनुमति देता है
मानकीकृत फ़ाइल मेटाडेटा प्रबंधन
कोड पुनरउपयोग को सुविधा प्रदान करता है
इनके लिए उपयुक्त
फ़ाइल पिकर प्लगइन बनाने वाले डेवलपर्स
क्रॉस-प्लेटफ़ॉर्म फ्लटर एप्लिकेशन्स
स्थिर फ़ाइल संचालन की आवश्यकता वाली टीमें
बहु-प्लेटफॉर्म पैकेज के रखरखावकर्ता
ऐप में फ़ाइल चयन को एकीकृत करने वाले विकासकर्ता
विचार योग्य बातें
प्रत्येक प्लेटफॉर्म पर सहायक कार्यान्वयन की आवश्यकता होती है
अंतिम उपयोगकर्ता एप्लिकेशन में सीधे उपयोग के लिए नहीं बनाया गया है
प्लेटफॉर्म-विशिष्ट प्लगइन पर निर्भर करता है
प्रत्येक प्लेटफॉर्म के लिए अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता हो सकती है
केवल API परिभाषा तक सीमित, कार्यक्षमता नहीं
बड़े प्लगइन इकोसिस्टम में सर्वोत्तम उपयोग किया जाता है
मूल 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.