안드로이드 전용 파일 선택, 저장 및 스토리지 액세스 프레임워크(SAF) URI 권한 부여 기능을 제공하는 플러터 플러그인입니다. 사용자는 네이티브 안드로이드 파일 피커를 통해 파일과 디렉토리를 선택하고, SAF를 사용하여 파일 접근을 안전하게 관리하며 적절한 권한으로 파일을 저장할 수 있습니다. 더 포괄적인 file_picker 플러그인의 구현으로 설계되어 안드로이드의 스토리지 모델과 현대적인 보안 관행과의 호환성을 보장합니다. 안드로이드 기기에서 강력한 파일 작업이 필요한 앱에 적합합니다.
사용 사례
장치 저장소에서 파일 선택
SAF를 사용하여 파일 저장하기
URI를 통해 일시적인 파일 액세스 권한 부여
Android 저장 시스템과의 통합
대용량 파일 전송 처리
외부 저장 장치 지원
주요 기능
안드로이드 전용 파일 선택
SAF URI 권한 지원
안전한 파일 액세스 관리
네이티브 안드로이드 파일 피커와의 통합
권한 처리를 포함한 파일 저장
file_picker와 함께 사용할 때의 크로스플랫폼 일관성
적합한 대상
Android 중심의 Flutter 앱
안전한 파일 접근이 필요한 앱
저장소에 SAF를 사용하는 개발자
모바일 앱의 파일 관리 기능
외부 저장소 지원이 필요한 앱
고려 사항
Android 플랫폼에 한정
올바른 매니페스트 권한이 필요합니다
부모 파일_picker 패키지에 의존합니다
추가적인 런타임 권한 검사가 필요할 수 있습니다
iOS 또는 웹용으로 적합하지 않습니다
SAF의 동작은 안드로이드 버전에 따라 달라집니다
원본 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.