path_provider
A Flutter plugin for finding commonly used locations on the filesystem. Supports Android, iOS, Linux, macOS and Windows. Not all methods are supported on all platforms.
| Android | iOS | Linux | macOS | Windows | |
|---|---|---|---|---|---|
| Support | SDK 16+ | 12.0+ | Any | 10.14+ | Windows 10+ |
Example
final Directory tempDir = await getTemporaryDirectory();
final Directory appDocumentsDir = await getApplicationDocumentsDirectory();
final Directory? downloadsDir = await getDownloadsDirectory();
Supported platforms and paths
Directories support by platform:
| Directory | Android | iOS | Linux | macOS | Windows |
|---|---|---|---|---|---|
| Temporary | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Application Support | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Application Library | ❌️ | ✔️ | ❌️ | ✔️ | ❌️ |
| Application Documents | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Application Cache | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| External Storage | ✔️ | ❌ | ❌ | ❌️ | ❌️ |
| External Cache Directories | ✔️ | ❌ | ❌ | ❌️ | ❌️ |
| External Storage Directories | ✔️ | ❌ | ❌ | ❌️ | ❌️ |
| Downloads | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Testing
path_provider now uses a PlatformInterface, meaning that not all platforms share a single PlatformChannel-based implementation.
With that change, tests should be updated to mock PathProviderPlatform rather than PlatformChannel.
See this path_provider test for an example.