Googleドキュメントの親フォルダーを表示する方法は?


91

多くの場合、Googleドキュメント(私のドキュメントまたは組織の共有ドキュメント)への直接リンクがあり、同じフォルダー内に保存されているドキュメントを検索する必要があります。そのためには、ドキュメントが入っているフォルダーを判別する必要があります。

それを行う方法はありますか?

回答:


72

ドキュメントは複数のフォルダに存在する可能性がありますが、UIを使用してそれらのリストを取得できます。

ドキュメントのタイトルの横にあるフォルダーアイコンをクリックします。ドキュメントが単一のフォルダーにある場合、フォルダーを新しいタブで開くためのアイコン、フォルダー内の他のドキュメント、および現在のドキュメントを移動するオプションを含むフォルダー名を示すビューをその単一フォルダーに取得します。

ここに画像の説明を入力してください

ドキュメントが複数のフォルダーにある場合、各フォルダーへのハイパーリンクを含むフォルダーのリストを取得します。

2つの親フォルダーのスクリーンショット


16
この「フォルダアイコン」がしばらく前にあったことを覚えていますが、現在はなくなっています。新しいデザインで親フォルダーを見つける方法は誰でも知っていますか?
マイクEng

2
フォルダーのアイコンが戻ってきたようです。
ヴィダールS.ラムダル14年

4
「このアイテムは次のとおりです」というテキストは、「フォルダアイコン」をクリックした後に表示されるダイアログに移動しました。残念ながら、これは作成していないファイルでは機能しないようです。
ジェディジャ

14
GoogleドライブのUIは非常に混乱しています...
フランクデルノンクール

3
@Jangariはい、それは無意味ですが、ドキュメントが複数のフォルダーにある場合はハイパーリンクを取得しますが、ドキュメントが1つのフォルダーにある場合はハイパーリンクを取得しません。この製品フィードバックをGoogleに送信することをお勧めします。たぶん、彼らがその種の十分なフィードバックを得るならば、彼らはそれを変えるでしょう。google.com/tools/feedback/intl/en
Mike Eng

14

フォルダアイコンがありませんか?

その小さなフォルダがファイル名の右側にない場合はFile > Document details...、少なくとも親ディレクトリ名を表示することを選択できます。例えば:

小さなフォルダアイコンが見つからない場合...

そして、あなたはワルドが地獄であるところを見つけるでしょう。 私はworld-2に居ました!


5

マウスのクリックでドキュメントの親フォルダーに移動する手段を提供しましょう。

以下のスクリプトをドキュメントの「コンテナバインド」スクリプトエディタに配置します。これを行うには、ドキュメントを開き、ドキュメントメニューバーから[ツール]> [スクリプトエディター...]を選択します。

これがそのドキュメントのスクリプトを初めて編集する場合、デフォルトのコードがエディターの画面に表示されます。スクリプトの内容を次のコードに置き換えるだけです。以下にリストされている関数onOpen()とlistParentFolders()の両方を含めます。

エディターでスクリプトを保存してから、関連ドキュメントを表示する参照ウィンドウを「更新」します。Utilsという名前のドキュメントの新しいメニュー項目が表示されます。Utilsメニューパッドをクリックすると、メニューポップアップ、Show Pathが表示されます。このスクリプトは、ディレクトリパスをハイパーリンクのリストとして表示します。

function onOpen() {


  // Add a menu with some items, some separators, and a sub-menu.
  DocumentApp.getUi().createMenu('Utils')
      .addItem('Show Path', 'listParentFolders')
      .addToUi();
}




function listParentFolders() {

  var theDocument = DocumentApp.getActiveDocument();

  var docID = theDocument.getId();

  var theFile = DocsList.getFileById(docID);

  var parents = theFile.getParents();

  // No folders
  if ( parents == null ) return;

  var folder = parents[0];

  var folderName = folder.getName();

  var folderURL = folder.getUrl();

  var folders = [[folderName,folderURL]];

  while (folderName != "Root"){

     parents = folder.getParents();

     folder = parents[0];

     folderName = folder.getName();

     folderURL = folder.getUrl();

     folders.unshift([folderName,folderURL]);
  }

  var app = UiApp.createApplication().setTitle("Folder Hierarchy").setHeight(250).setWidth(300);

  var grid = app.createGrid(folders.length, 1).setStyleAttribute(0, 0, "width", "300px").setCellPadding(5);

  var indentNum = 0, link;

  for (var fldCntr = 0; fldCntr < folders.length; fldCntr++){

     folderName = folders[fldCntr][0];

     folderURL = folders[fldCntr][1];

     link = app.createAnchor(folderName, folderURL).setId("id_" + fldCntr).setStyleAttribute("font-size", "10px");

     grid.setWidget(indentNum, 0, link);

     indentNum += 1;
  }

  app.add(grid);

  DocumentApp.getUi().showSidebar(app);
}

文書がGoogleドライブ上のPowerPoint(Googleアプリ以外)ファイルである場合はどうなりますか?
Fuhrmanator

@FuhrmanatorはDocumentAppではなくDriveApp APIを使用してアクセスします。各ファイルにはドライブ内のmimetype(ファイルタイプ)と一意のファイルIDがあります。
ルイマドックス

具体的には、既知のid id、set source_folder = DriveApp.getFolderById(id)、およびuse source_folder.getFilesByType(MimeType.MICROSOFT_POWERPOINT)または...MimeType.MICROSOFT_POWERPOINT_LEGACY(または、後半部分が評価する実際のMIMEタイプ文字列を使用できる)フォルダーの場合。こちらのドキュメントをご覧ください
ルイマドックス

5

2014-04-04の時点で、ドキュメントからそのフォルダーを取得する方法がいくつかあります。

開いているドキュメントから、ドキュメントのタイトルの横にあるフォルダーアイコンをクリックします。「この項目は次のとおりです」と含まれるフォルダー名を示すダイアログが表示されます。フォルダ名はフォルダにリンクされています。代わりに「移動」ダイアログが表示される場合、ドキュメントを含むフォルダがルートになります。ドキュメントであるか、明示的に追加した場合は、マイドライブにあります。そうでない場合は、ドキュメントリストビューの左側にあるフォルダーリストの[その他]> [すべてのアイテム]を試してください。

ドキュメント検索ビューから、アイテムを選択します。[その他]> [詳細とアクティビティ]> [詳細]> [フォルダ]。リストされているフォルダ名は、対応するフォルダにリンクされています。

2014-12-03現在、共同のGoogleドキュメントではないファイルについて、ファイルビューからそのフォルダーを含むフォルダーに移動する方法がわかりません。方法がわかっている場合は、この回答をコメントまたは編集してください。


2

いいえ、ドキュメントURLまたはドキュメント自体からこれを行う方法はありません。ドキュメントのタイトルを取得して、ドライブリストビューで検索する必要があります。検索結果にはドキュメントのタイトルが表示され、親フォルダーの名前も灰色で表示されます。


方法についてのラウンドですが、それは解決策です。ありがとう!
クラウス

1
親フォルダー名が一意の場合にのみ役立ちます。常にではない場合...
Fuhrmanator

@Fuhrmanator親フォルダー名が一意ではない場合、すべてのフォルダーを検索するだけで便利です(フォルダーの数が多い場合は難しいかもしれませんが、それでもなお)。
ThomasW

1

親フォルダー

ドキュメントのキーに基づいて、親フォルダーを取得する小さなスクリプトを作成しました。

function doGet() {
  // create app and grid
  var app = UiApp.createApplication(); 
  var grid = app.createGrid(4,2);    

  // set labels for first column
  grid.setWidget(0, 0, app.createLabel("Add document key: ")
    .setStyleAttribute('fontWeight', 'bold'));
  grid.setWidget(2, 0, app.createLabel("Parent Folder: ")
    .setStyleAttribute('fontWeight', 'bold'));

  // set text boxes for second column
  grid.setWidget(0, 1, app.createTextBox().setId("key")
    .setName("key").setWidth(500));
  grid.setWidget(2, 1, app.createTextBox().setId("path")
    .setName("path").setWidth(500));

  // create button and handler
  grid.setWidget(3, 0, app.createButton("PATH")
    .addClickHandler(app.createServerHandler("getPath")
    .addCallbackElement(grid)));

  // add grid to application and show app
  app.add(grid);
  return app;
}

function getPath(e) {
  // get active application and key
  var app = UiApp.getActiveApplication();
  var key = e.parameter.key;  

  // Get file and path
  var path;
  try {
    var file = DocsList.getFileById(key);
    path = file.getParents()[0].getName(); 
  } catch(e) {
    path = "file not found";
  }

  // add path to application and update app
  app.getElementById("path").setValue(path);
  return app;
}

こんな感じ

ここに画像の説明を入力してください

インストールする

  1. goto script.google.com、ログイン中
  2. 新しいスクリプトを開始する
  3. コードを貼り付けてバグアイコンを押します。プレス承認。
  4. file>menaged versionスクリプトを保存します。
  5. goto Publish>Deploy as web appおよびプレス更新
  6. 表示されたURL(最後に実行)を使用すると、スタンドアロンスクリプトを実行できます。

注意

親フォルダーのみが記載されています(正確に必要なもの)が、完全なパスは公開されません。


1

更新:GoogleはこれらのAPIを廃止しました。

注:これは、新しいドライブUIを使用して本当に必要なくなりました...

  1. 検索またはドキュメントリストがある場合、検索するファイルをハイライトします
  2. 右上の[i](情報)ボタンをクリックします
  3. [詳細]をクリックします(デフォルトの[アクティビティ]に対して)
  4. 共有と保存場所などが表示されます

これはすでに答えられていることに気付きましたが、検索中に人々がそれを見つけた場合に備えて(私はそうしました)、いくつか追加します。Google App Scriptを初めて使用する場合は、このリンクを参照してください

@Jacob Jan Tuinstraと@Drawnのスクリプトに感謝しますが、どちらも私が必要なものではなかったので、私は彼らの両方を使って私のものを作成しました。以下のスクリプトは、GAppsスクリプトエディターに貼り付けてから、Webアプリとして公開する必要があります。リンクは後で再利用するために保存/ブックマークする必要があります。

function doGet() {

  // create app and grid
  var app = UiApp.createApplication(); 
  var grid = app.createGrid(4,2);    

  // set labels for first column
  grid.setWidget(1, 0, app.createLabel("Document's key: ")
    .setStyleAttribute('fontWeight', 'bold'));
  grid.setWidget(2, 0, app.createLabel("Folder Path: ")
    .setStyleAttribute('fontWeight', 'bold'));

  // set text boxes for second column
  grid.setWidget(1, 1, app.createTextBox().setId("key")
    .setName("key").setWidth(500));
  grid.setWidget(2, 1, app.createTextBox().setId("path")
    .setName("path").setWidth(500));

  // create button and handler
  grid.setWidget(3, 0, app.createButton("Find")
    .addClickHandler(app.createServerHandler("listParentFolders")
    .addCallbackElement(grid)));

  // add grid to application and show app
  app.add(grid);
  return app;
}


function listParentFolders(e) {

  var app  = UiApp.createApplication(); 
  var path = '';

  var key     = e.parameter.key;  
  var theFile = DocsList.getFileById(key);
  var parents = theFile.getParents();

  // No folders
  if ( parents == null ) {
    app.getElementById("path").setValue('unknown');
    return app;
  }
  var folder     = parents[0];
  var folderName = folder.getName();
  var folders    = [[folderName]];

  try {
    folderName = parents[0].getName();
  }
  catch(error)
  {
    app.getElementById("path").setValue('(unknown - shared document)');
    return app; 
  }

  while (folderName != "Root"){

    parents    = folder.getParents();
    folder     = parents[0];
    folderName = folder.getName();

    // we are going in reverse - build list in other direction
    folders.unshift([folderName]);
  }

  // built path list
  var indentNum = 0;
  for (var fldrCntr = 0; fldrCntr < folders.length; fldrCntr++){

    folderName = folders[fldrCntr][0];
    if(fldrCntr == 0) {
      path  = 'My Drive';  // ...instead of 'Root'
    } else {
      path += ' / ' + folderName;
    }

    indentNum += 1;
  }

  app.getElementById("path").setValue(path);

  return app;
}

UIは次のようになります。 スクリプトUI

ファイルのIDはそのURLから取得されることに注意してください。つまり、以下のURLサンプルの「<...>」を参照してください。

https://docs.google.com/a/your_domain/spreadsheet/ccc?key=<...>&usp=drive_web#gid=0

まさに私が必要なもの。悲しいことに、Googleは2014年12月11日にUiAppを廃止しました。そのため、ある時点で書き直す必要があります。それはクラウドサービスの問題です。長い間何も機能せず、あなたは彼らの慈悲にかかっています。
エドランドール

はい、確かに@EdRandallです。これをオリジナルに更新します
-thx

1

ここではこれらの答え(中2つのスクリプトのより完全かつ信頼性の高い実装で最初のもの二番目のこの質問には)。このスクリプトを使用すると、ファイルの完全なURLまたはファイルIDをダイアログの最初の編集ボックスに貼り付け、パスのテキスト表現と親ディレクトリへのリンクを返すことができます。インストール手順は、ジェイコブが上に示したものと同じです。完全を期すため、以下にコピーしました。

注:これらのすべてのスクリプトで使用されているAPIの一部は現在廃止されています。彼らは、この投稿が作成された時点でまだ機能していますが、おそらく今後機能しなくなるでしょう。

//
// Take a Google Drive file URL or ID and output a string representation of the path as well as a link
// to the parent folder
//
// Based on https://webapps.stackexchange.com/questions/43881/how-to-view-the-parent-folder-of-a-google-document

function doGet() {
  // create app and grid
  var app = UiApp.createApplication(); 
  var grid = app.createGrid(5,2);    

  // set labels for first column
  grid.setWidget(1, 0, app.createLabel("URL or file ID: ").setStyleAttribute('fontWeight', 'bold'));
  grid.setWidget(2, 0, app.createLabel("Folder Path: ").setStyleAttribute('fontWeight', 'bold'));
  grid.setWidget(3, 0, app.createLabel("Folder URL: ").setStyleAttribute('fontWeight', 'bold'));

  // set text boxes for second column
  grid.setWidget(1, 1, app.createTextBox().setId("key").setName("key").setWidth(1000));
  grid.setWidget(2, 1, app.createTextBox().setId("path").setName("path").setWidth(1000));
  grid.setWidget(3, 1, app.createAnchor("","").setId("url").setName("url").setWidth(1000));

  // create button and handler
  grid.setWidget(4, 0, app.createSubmitButton("Find")
    .addClickHandler(app.createServerHandler("listParentFolders")
    .addCallbackElement(grid)));

  // add grid to application and show app
  app.add(grid);
  return app;
}

//
// getIdFromUrl - Get the file id portion of the url.  If the file id itself is passed in it will match as well
//
// From http://stackoverflow.com/questions/16840038/easiest-way-to-get-file-id-from-url-on-google-apps-script
// This regex works for any google url I've tried: Drive url for folders and files, Fusion Tables, Spreadsheets,
// Docs, Presentations, etc. It just looks for anything in a string that "looks like" a Google key. That is, any
// big enough string that has only (google key) valid characters in it.
//
// Also, it works even if it receives the ID directly, instead of the URL. Which is useful when you're asking
// the link from the user, as some may paste the id directly instead of the url and it still works.

function getIdFromUrl(url) {
  return url.match(/[-\w]{25,}/);
}

function listParentFolders(e) {
  var app      = UiApp.createApplication(); 
  var key      = getIdFromUrl(e.parameter.key);
  var theFile  = DriveApp.getFileById(key);
  var parents  = theFile.getParents();
  var fileName = theFile.getName();

  // no folders
  if ( parents == null ) {
    app.getElementById("path").setValue('Unknown file');
    return app;
  }

  var url;
  var folder;
  var folderName;
  var path;

  // traverse the list of parents of folders to build the path
  while (parents.hasNext()){
    folder     = parents.next();
    folderName = folder.getName();

    // on the first pass get the URL of the folder which is the parent folder of the file
    if (url == null)
      url = folder.getUrl();

    // build up a string version of the path
    if (path == null)
      path = folderName;
    else
      path = folderName + ' / ' + path;

    // get the parent of the current folder
    parents = folder.getParents();
  }

  app.getElementById("path").setValue(path);
  app.getElementById("url").setHref(url).setText(url);

  return app;
}

次のようになります。

親フォルダーのUIを検索

インストールする:

  1. goto script.google.com、ログイン中
  2. 新しいスクリプトを開始する
  3. コードを貼り付けてバグアイコンを押します。プレス承認。
  4. file> menaged versionでスクリプトを保存します。
  5. goto Publish> Deploy as web app and press update
  6. 表示されたURL(最後に実行)を使用すると、スタンドアロンスクリプトを実行できます。

1
注:回答はさまざまな方法で並べ替えることができるため、「上記」には実際には回答にコンテキストがありません。あなたが言及している答えにリンクする方が良い。
エール

ありがとう、Al、私はStackExchangeが初めてです。「上記」の参照を削除し、代わりにリンクを使用しました。
グレッグL.

-2

Googleは既にその解決策を提供しています。

myreport.pdfというpdfドキュメントを探しているとします。

myreportを検索すると、条件を満たすドキュメントのリストが表示されます。

それが入っているフォルダを知りたい場合は、右クリックして[ マイドライブ検索]をクリックします

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.