path_providerとは
path_provider
は、Flutterアプリケーションでファイルシステム上の一般的に使用される場所を見つけるためのプラグインです。
path_provider | Flutter package
Flutter plugin for getting commonly used locations on host platform file systems, such as the temp and app data director...
使い方
インストール方法
pubspec.yaml
ファイルに依存関係を追加します。
dependencies:
path_provider: ^2.1.3
基本的な使用方法
一時ディレクトリの取得
アプリケーションの一時ファイルを保存するためのディレクトリを取得します。
final Directory tempDir = await getTemporaryDirectory();
アプリケーションのドキュメントディレクトリの取得
アプリケーションの永続的なデータを保存するためのディレクトリを取得します。
final Directory appDocumentsDir = await getApplicationDocumentsDirectory();
ダウンロードディレクトリの取得
ユーザーのダウンロードディレクトリを取得します。プラットフォームによってはサポートされていない場合があります。
final Directory? downloadsDir = await getDownloadsDirectory();
プラットフォーム別サポートとパス
各プラットフォームでサポートされているディレクトリは以下の通りです:
ディレクトリ | Android | iOS | Linux | macOS | Windows |
---|---|---|---|---|---|
一時 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
アプリケーションサポート | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
アプリケーションライブラリ | ❌ | ✔️ | ❌ | ✔️ | ❌ |
アプリケーションドキュメント | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
アプリケーションキャッシュ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
外部ストレージ | ✔️ | ❌ | ❌ | ❌ | ❌ |
外部キャッシュディレクトリ | ✔️ | ❌ | ❌ | ❌ | ❌ |
外部ストレージディレクトリ | ✔️ | ❌ | ❌ | ❌ | ❌ |
ダウンロード | ❌ | ✔️ | ✔️ | ✔️ | ✔️ |
テスト
path_provider
はPlatformInterfaceを使用しており、すべてのプラットフォームが単一のPlatformChannelベースの実装を共有しているわけではありません。そのため、テストを更新してPathProviderPlatformをモックする必要があります。
以下は、テストの例です:
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path_provider_platform_interface/path_provider_platform_interface.dart';
class MockPathProviderPlatform extends Mock implements PathProviderPlatform {}
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
group('PathProvider', () {
test('getTemporaryDirectory', () async {
final mock = MockPathProviderPlatform();
PathProviderPlatform.instance = mock;
when(mock.getTemporaryPath()).thenAnswer((_) async => '/mock/temp');
final directory = await getTemporaryDirectory();
expect(directory.path, '/mock/temp');
});
});
}