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'); }
ってことで、上記では取得できませんでした。