it-swarm.com.de

Wie kann ich den übergeordneten Ordner eines Google-Dokuments anzeigen?

Oft habe ich einen direkten Link zu einem Google-Dokument (meinem oder einem von einer Organisation freigegebenen) und möchte Dokumente finden, die im selben Ordner gespeichert sind. Dazu müsste ich den Ordner ermitteln, in dem sich das Dokument befindet.

Gibt es eine Möglichkeit, das zu tun?

89
Claus

Ein Dokument kann sich möglicherweise in mehreren Ordnern befinden, aber Sie können eine Liste davon über die Benutzeroberfläche abrufen.

Klicken Sie auf das Ordnersymbol neben dem Dokumenttitel. Befindet sich das Dokument in einem einzelnen Ordner, erhalten Sie eine Ansicht in diesen einzelnen Ordner, in der der Ordnername mit einem Symbol zum Öffnen des Ordners in einer neuen Registerkarte, andere Dokumente im Ordner und Optionen zum Verschieben des aktuellen Dokuments angezeigt werden:

enter image description here

Befindet sich das Dokument in mehreren Ordnern, erhalten Sie eine Liste der Ordner, in denen es sich befindet, mit Hyperlinks zu jedem Ordner.

Screenshot of two parent folders

70
pkaeding

Fehlt das Ordnersymbol?

Wenn Sie feststellen, dass dieser kleine Ordner rechts vom Dateinamen fehlt, können Sie File > Document details... auswählen, um zumindest den Namen des übergeordneten Verzeichnisses anzuzeigen. Z.B.:

When the little folder icon is missing...

Und du wirst finden, wo zum Teufel Waldo ist. I found myself in world-2!

12
broc.seib

Bieten wir eine Möglichkeit, mit einem Mausklick zum übergeordneten Ordner des Dokuments zu wechseln.

Fügen Sie das folgende Skript in den Skripteditor Ihres Dokuments ein, der an einen Container gebunden ist. Öffnen Sie dazu Ihr Dokument und wählen Sie in der Menüleiste des Dokuments Extras> Skript-Editor ... aus.

Wenn Sie das Skript des Dokuments zum ersten Mal bearbeiten, wird der Editor-Bildschirm mit Standardcode gefüllt. Ersetzen Sie einfach den Skriptinhalt durch den folgenden Code. Schließen Sie die unten aufgelisteten Funktionen onOpen () und listParentFolders () ein.

Speichern Sie das Skript im Editor und aktualisieren Sie das Suchfenster, in dem das zugehörige Dokument angezeigt wird. Für das Dokument Utils wird ein neuer Menüpunkt angezeigt. Durch Klicken auf das Utils-Menüfeld wird das Popup-Menü "Pfad anzeigen" angezeigt. Dieses Skript zeigt den Verzeichnispfad als Liste von Hyperlinks an.

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);
}
5
Drawn

Ab dem 04.04.2014 gibt es verschiedene Möglichkeiten, um von einem Dokument in den übergeordneten Ordner zu gelangen.

Klicken Sie im geöffneten Dokument auf das Ordnersymbol neben dem Titel des Dokuments. Ein Dialogfeld mit "Dieser Eintrag ist in" und dem Namen des enthaltenen Ordners wird angezeigt. Der Ordnername ist mit dem Ordner verknüpft. Wenn stattdessen ein Dialogfeld "Verschieben nach" angezeigt wird, ist der Ordner, der das Dokument enthält, der Stammordner. Wenn es sich um Ihr Dokument handelt oder wenn Sie es explizit hinzugefügt haben, befindet es sich in Mein Laufwerk. Wenn nicht, versuchen Sie Mehr> Alle Elemente in der Ordnerliste links von der Dokumentenlistenansicht.

Wählen Sie in der Dokumentensuchansicht das Element aus. Mehr> Details und Aktivität> Details> Ordner. Alle aufgelisteten Ordnernamen sind mit den entsprechenden Ordnern verknüpft.

Ab dem 03.12.2014 kann ich nicht mehr herausfinden, wie ich aus einer Dateiansicht in den zugehörigen Ordner komme, wenn es sich um Dateien handelt, bei denen es sich nicht um kollaborative Google-Dokumente handelt. Bitte kommentieren oder bearbeiten Sie diese Antwort, wenn Sie wissen, wie.

5
Matt McClure

AFAIK nein, es gibt keine Möglichkeit, dies über die Dokument-URL oder das Dokument selbst zu tun. Sie müssen den Titel des Dokuments abrufen und in Ihrer Laufwerkslistenansicht danach suchen. Die Suchergebnisse sollten den Dokumenttitel und den Namen des übergeordneten Ordners in grau anzeigen.

2
OnenOnlyWalter

UPDATE: Google hat diese APIs eingestellt, seien Sie also vorsichtig.

HINWEIS: Dies wird in der neuen Benutzeroberfläche des Laufwerks nicht mehr benötigt.

  1. wenn Sie nach Dokumenten suchen oder eine Dokumentenliste haben, markieren Sie die zu suchende Datei
  2. klicken Sie oben rechts auf die Schaltfläche [i] (Info)
  3. klicken Sie auf "Details" (im Gegensatz zur Standardeinstellung "Aktivität")
  4. sie werden sehen, wie geteilt wird und wo es gespeichert wird usw

Ich habe festgestellt, dass dies bereits beantwortet wurde, aber für den Fall, dass die Leute es während der Suche finden (ich habe es getan), werde ich einiges hinzufügen. Wenn Sie Google App Script noch nicht kennen, lesen Sie diesen Link .

Vielen Dank an @Jacob Jan Tuinstra und @Drawn für ihre Skripte, aber beides war nicht ganz das, was ich brauchte. Ich habe beide verwendet, um meine zu erstellen. Das folgende Skript muss in einen GApps-Skript-Editor eingefügt und dann als Web-App veröffentlicht werden. Der Link sollte für eine spätere Wiederverwendung gespeichert/mit einem Lesezeichen versehen werden:

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;
}

Die Benutzeroberfläche sieht folgendermaßen aus: Script UI

Beachten Sie, dass die ID einer Datei von ihrer URL stammt - siehe "<...>" im folgenden URL-Beispiel:

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

Übergeordneter Ordner

Ich habe ein kleines Skript geschrieben, das den übergeordneten Ordner basierend auf dem Schlüssel des Dokuments abruft:

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;
}

Es sieht aus wie das

enter image description here

Installieren

  1. gehe zu script.google.com , während du angemeldet bist
  2. starten Sie ein neues Skript
  3. code einfügen und das Fehlersymbol drücken. Drücken Sie auf Autorisieren.
  4. speichern Sie das Skript unter file>menaged version.
  5. gehe zu Publish>Deploy as web app und drücke update
  6. mit der angegebenen URL (exec am Ende) können Sie das eigenständige Skript ausführen.

Hinweis

Es wird nur der übergeordnete Ordner erwähnt (genau das, was Sie wollten), aber nicht der vollständige Pfad.

1

Hier ist eine vollständigere und zuverlässigere Implementierung der beiden Skripte in diesen Antworten ( erste und zweite ) auf diese Frage. Mit diesem Skript können Sie die vollständige URL der Datei oder die Datei-ID in das erste Bearbeitungsfeld des Dialogfelds einfügen und anschließend eine Textdarstellung des Pfads sowie einen Link zum übergeordneten Verzeichnis zurückgeben. Die Installationsanweisungen sind identisch mit denen, die oben von Jacob gezeigt wurden. Der Vollständigkeit halber habe ich sie unten kopiert.

HINWEIS: Einige der in all diesen Skripten verwendeten APIs sind jetzt veraltet. Sie arbeiten immer noch ab dem Zeitpunkt, an dem dieser Beitrag verfasst wurde, werden aber wahrscheinlich in Zukunft nicht mehr arbeiten.

//
// 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;
}

Es sieht so aus:

Find parent folder UI

Installation:

  1. gehe zu script.google.com , während du angemeldet bist
  2. starten Sie ein neues Skript
  3. code einfügen und das Fehlersymbol drücken. Drücken Sie auf Autorisieren.
  4. unter file> menaged version das script speichern.
  5. gehe zu Veröffentlichen> Als Web-App bereitstellen und aktualisiere die Presse
  6. mit der angegebenen URL (exec am Ende) können Sie das eigenständige Skript ausführen.
1
Greg L.