okaryo.log

Flutterアプリで端末の総容量と空き容量を取得する | okaryo.log

Flutterアプリで端末の総容量と空き容量を取得する

    #Flutter

使うパッケージ

disk_spaceというパッケージを使用する。端末の容量を取得できるFlutterパッケージとしては以下も存在したが、今回は見送る。

  • storage_capacity
    • 最後のコミットが2020年12月。pub.devでのlikeも少ない。
  • storage_space
    • 上記のdisk_spacestorage_capacityをreworkさせたパッケージらしいが、disk_spaceの方が最終コミットが数ヶ月新しいし、pub.devでのlikeも多い。

使い方

端末の容量を取得するためのパッケージなのでAPIもシンプル。

import 'package:disk_space/disk_space.dart';

// 総容量を取得。単位はMB。
final totalSpace = await DiskSpace.getTotalDiskSpace;

// 空き容量を取得。単位はMB。
final freeSpace = await DiskSpace.getFreeDiskSpace;

path_providerを使ってディレクトリごとの空き容量も取得できるようだ。

import 'dart:io';
import 'package:disk_space/disk_space.dart';
import 'package:path_provider/path_provider.dart';

List<Directory> directories;

if (Platform.isIOS) {
  directories = [await getApplicationDocumentsDirectory()];
} else if (Platform.isAndroid) {
  directories = await getExternalStorageDirectories(type: StorageDirectory.movies);
  if (directories == null) {
    directories = [await getApplicationDocumentsDirectory()]
  }
} else {
  directories = [];
}

for (final directory in directories) {
  // ディレクトリごとの空き容量を取得
  final space = await DiskSpace.getFreeDiskSpaceForPath(directory.path);
}

おわり

シンプルでもこういったパッケージがあるのはありがたい。なかった場合はMethodChannelを使った自作実装を覚悟していた。


関連記事
最新記事
プロモーション

This site uses Google Analytics.