exec method

Future<void> exec(
  1. {required String zipFileName,
  2. required List<int> zipData}
)

圧縮ファイルをローカルに保存する

Implementation

Future<void> exec(
    {required String zipFileName, required List<int> zipData}) async {
  try {
    if (_isAndroid) {
      /// Androidの場合、外部ストレージに保存する
      final directory = await getExternalStorageDirectory();

      if (directory == null) {
        throw ServiceException(
          ServiceErrorType.directoryNotAccessError,
          ServiceErrorType.directoryNotAccessError.message,
        );
      }

      final zipFile = File('${directory.path}/$zipFileName');

      await zipFile.writeAsBytes(zipData);

      return;
    } else {
      /// iOSの場合、アプリ内に保存する
      final directory = await getApplicationDocumentsDirectory();

      final zipFile = File('${directory.path}/$zipFileName');

      await zipFile.writeAsBytes(zipData);
    }
  } on ServiceException catch (_) {
    rethrow;
  } catch (e) {
    throw ServiceException(
      ServiceErrorType.fileSaveError,
      ServiceErrorType.fileSaveError.message,
    );
  }
}