Flutter で Google drive の createdTime, modifiedTime を取得するには?

 

$fields を明示しないと取得できなかった。

Future<void> _test(String folderId) async {
  final jsonString = await rootBundle.loadString(
      'assets/google_sheet_auth.json');
  final jsonData = json.decode(jsonString);
  final credentials = ServiceAccountCredentials.fromJson(jsonData);
  final scopes = [
    drive.DriveApi.driveReadonlyScope,
    // drive.DriveApi.driveMetadataReadonlyScope,
    // SheetsApi.spreadsheetsReadonlyScope,
  ];
  final client = await clientViaServiceAccount(credentials, scopes);
  var driveApi = drive.DriveApi(client);

  drive.FileList files = await driveApi.files.list(
    q: "'$folderId' in parents",
    $fields: 'files(id, name, mimeType, createdTime, modifiedTime)',
  );
  for (drive.File file in files.files ?? []) {
    log.d('${file.name} createdTime: ${file.createdTime} modifiedTime: ${file.modifiedTime}');
  }

  try {
    final _file = await driveApi.files.get(folderId,
      $fields: 'files(id, name, mimeType, createdTime, modifiedTime)',
    ) as drive.File;
    // ファイル情報が取得できた場合の処理
    log.d('${_file.name} createdTime: ${_file.createdTime} modifiedTime: ${_file.modifiedTime} ');
  } catch (e) {
    // ファイルが見つからなかった場合やエラーが発生した場合の処理
    print('エラー: $e');
  }

  client.close();
}

 

ChatGPTに聞くと

google drive のファイルのタイムスタンプを取得する事はできますか?

はい、Google Driveのファイルのタイムスタンプを取得することは可能です。Google Drive APIを使用してファイルのメタデータを取得することで、ファイルの作成日時や最終更新日時などの情報を取得できます。

以下は、Google Driveファイルのメタデータを取得して、作成日時と最終更新日時を取得するDartコードの例です。

import 'package:googleapis/drive/v3.dart' as drive;
import 'package:googleapis_auth/auth_io.dart';

Future<void> getFileTimestamp(String fileId) async {
  final jsonString = await rootBundle.loadString('assets/google_sheet_auth.json');
  final jsonData = json.decode(jsonString);
  final credentials = ServiceAccountCredentials.fromJson(jsonData);
  final scopes = [drive.DriveApi.driveMetadataReadonlyScope];

  final client = await clientViaServiceAccount(credentials, scopes);
  final driveApi = drive.DriveApi(client);

  try {
    final file = await driveApi.files.get(fileId);
    final createdTime = file.createdTime;
    final modifiedTime = file.modifiedTime;

    print('ファイルの作成日時: $createdTime');
    print('ファイルの最終更新日時: $modifiedTime');
  } catch (e) {
    print('エラー: $e');
  } finally {
    client.close();
  }
}

void main() {
  getFileTimestamp('YOUR_GOOGLE_DRIVE_FILE_ID');
}

ってことで、上記では取得できませんでした。

Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

© 2024 Falco Tech Blog Suffusion theme by Sayontan Sinha