2

私は単純な間違いを犯しましたか、それとも DriveApp で .searchFiles メソッドを使用してフォルダーを検索できませんか? より複雑な検索パラメーターがありますが、この例では単純化しました。

function getFolders()
{
  var searchParams = 'mimeType = "application/vnd.google-apps.folder"';    
  var searchFiles = DriveApp.searchFiles(searchParams);
  if (searchFiles.hasNext())
  {
    // Do Something
  }
  else
  {
    // Error
    Logger.log("No folders found");
  }
}

ドキュメントには FileIterator を返すと記載されていますが、詳細については Google Drive SDK を参照して ください https://developers.google.com/apps-script/reference/drive/drive-app#searchFiles(String)

ここの検索パラメーターでは、フォルダーかどうかを指定できます https://developers.google.com/drive/search-parameters

フォルダ名を検索するオプションはありますか?

4

2 に答える 2

4

ファイル検索メソッドはファイルのみを返します。GAS API によると、このメソッドは「現在のフォルダーの子であり、指定された検索条件に一致するすべてのファイルのコレクションを取得する」ために使用されます。こちら を参照してください

名前でフォルダーを見つけるには、次のコードを使用します。

function getFolders(folderName)
{      
  var folders = DriveApp.getFolders();     
 while (folders.hasNext()) {
   var folder = folders.next();
   if(folderName == folder.getName()) {         
     return folder;
   }
 }
  return null;
}
于 2013-06-11T12:53:37.460 に答える
-1

DriveApp の代わりに DocsList を使用することになった

https://developers.google.com/apps-script/reference/docs-list/docs-list#getAllFolders()

br araujoによる上記の解決策は元の質問に答えているので、答えとしてマークしました。

DocsList を使用する際の問題は、それが返すフォルダーの種類が DriveApp と互換性がないことです。それらに互換性を持たせるために、オブジェクトの代わりに関数呼び出し間で Id を渡すだけです。

于 2013-06-13T00:14:30.200 に答える