4

Google ドライブでは、「自分が所有していない」ファイルを検索できます。Google Apps Script からこれにアクセスする必要があります。私はすでに DocsList.find("Not 'me' in owner"); を試しました。ドライブAPIでそれを行う方法のように見えますが、成功しませんでした(実際、所有者としてファイルを取得します)。また、引用符の有無にかかわらず、自分のメールアドレスに置き換えましたが、成功しませんでした。

これが可能かどうかは誰にもわかりますか (すべてのファイルを反復して getOwner().getEmail() を手動でチェックする以外に、この特定のユーザーが所有する膨大な量のファイルを考えると時間がかかりすぎます)。

4

2 に答える 2

5

今のところ更新された答えは、DriveApp.searchFiles(params) ( https://developers.google.com/apps-script/reference/drive/drive-app#searchFiles(String) )を使用することだと思います。コードは次のようなものです。

 // Log the name of every file in the user's Drive that shared with me
 var files = DriveApp.searchFiles('sharedWithMe');
 while (files.hasNext()) {
   var file = files.next();
   Logger.log(file.getName()); 
 }
于 2015-03-10T13:31:29.747 に答える
2

この関数は、共有されているすべてのファイルの配列を返します。これは、使用前に有効にする必要があるAdvanced Drive Serviceを使用します。

/**
 * Get array of files on user's Google Drive that have been shared with them.
 * From https://stackoverflow.com/a/15947340/1677912
 *
 * @returns   {Array}   Array of file resources
 *                      (see https://developers.google.com/drive/v2/reference/files#resource)
 */
function getSharedWithMe() {
  var optionalArgs = {q:"sharedWithMe=true"};
  var sharedFiles = Drive.Files.list(optionalArgs);
  debugger;  // pause in debugger
  return sharedFiles.items;
}

Google ドライブ SDK の「Explorer」を使用すると、コードなしで同じことができます。

この手法を使用してゴミ箱に入れられたファイルのリストを取得したこの以前の回答を参照してください。

Files:list の Google ドライブ SDK ドキュメント ページの下部に、Files List API Explorerがあります。検索用語については、「ファイルを検索する」を参照してください。この目的のために、単に を使用しますsharedWithMe

スクリーンショット クエリ

「フィールド」を空白のままにすると、共有ファイルに関する既知の情報がすべて取得されます。見にくいマイナス記号タグを使用して、結果を展開および折りたたむことができます。ただし、出力を制限すると便利です。使用しitems(id,selfLink,owners/displayName)ました。これがどのように見えるかです:

スクリーンショットの結果

于 2013-04-11T11:15:16.883 に答える