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

91

Oft habe ich den 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?

Claus
quelle

Antworten:

72

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:

Bildbeschreibung hier eingeben

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

Screenshot von zwei übergeordneten Ordnern

pkaeding
quelle
16
Ich erinnere mich, dass dieses "Ordnersymbol" vor einiger Zeit dort war, aber es ist jetzt weg. Weiß jemand, wie man den übergeordneten Ordner im neuen Design findet?
Mike Eng
2
Das Ordnersymbol scheint jetzt wieder da zu sein.
Vidar S. Ramdal
4
Der Text "Dieses Element befindet sich in:" wurde jetzt in das Dialogfeld verschoben, das angezeigt wird, nachdem Sie auf das Ordnersymbol geklickt haben. Leider scheint dies nicht für Dateien zu funktionieren, die Sie nicht erstellt haben.
Jedidja,
14
Die Benutzeroberfläche von Google Drive ist so ein Durcheinander ...
Franck Dernoncourt
3
@Jangari Ja, so unsinnig es auch ist, Sie erhalten Hyperlinks, wenn sich das Dokument in mehreren Ordnern befindet, aber keinen Hyperlink, wenn sich das Dokument nur in einem Ordner befindet. Wir empfehlen Ihnen, dieses Produktfeedback an Google zu senden. Vielleicht werden sie es ändern, wenn sie genug Feedback bekommen. google.com/tools/feedback/intl/en
Mike Eng
14

Vermissen Sie das Ordnersymbol?

Wenn Sie feststellen, dass dieser kleine Ordner rechts neben dem Dateinamen fehlt, können Sie festlegen File > Document details..., dass mindestens der Name des übergeordneten Verzeichnisses angezeigt wird. Z.B:

Wenn das kleine Ordnersymbol fehlt ...

Und du wirst finden, wo zum Teufel Waldo ist. Ich befand mich in Welt 2!

broc.seib
quelle
5

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

Platzieren Sie das folgende Skript im Skript-Editor Ihres Dokuments, 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. Wenn Sie auf das Utils-Menü klicken, 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);
}
Gezeichnet
quelle
Was ist, wenn mein Dokument eine PowerPoint-Datei (keine Google Apps) auf Google Drive ist?
Fuhrmanator
@Fuhrmanator greift mit der DriveApp-API und nicht mit DocumentApp darauf zu. Jede Datei hat einen Mimetyp (Dateityp) in Drive, auf dem Sie sie finden, sowie eine eindeutige Datei-ID.
Louis Maddox
Speziell für einen Ordner mit bekannter ID id, festgelegt source_folder = DriveApp.getFolderById(id)und verwendet source_folder.getFilesByType(MimeType.MICROSOFT_POWERPOINT)oder ...MimeType.MICROSOFT_POWERPOINT_LEGACY(oder Sie können die tatsächliche MIME-Typ-Zeichenfolge verwenden, zu der der letztere Teil ausgewertet wird). Siehe Dokumente hier
Louis Maddox
5

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 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.

Matt McClure
quelle
2

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.

OnenOnlyWalter
quelle
Ein runder Weg, aber es ist eine Lösung. Vielen Dank!
Claus
1
Nur nützlich, wenn der Name Ihres übergeordneten Ordners eindeutig ist. Nicht immer der Fall ...
Fuhrmanator
@Fuhrmanator ist es immer noch nützlich, wenn der Name des übergeordneten Ordners nicht eindeutig ist. Sie müssen nur alle Ordner durchsuchen (was schwierig sein kann, wenn die Anzahl der Ordner groß ist, aber immer noch).
ThomasW
1

Ü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

Bildbeschreibung hier eingeben

Installieren

  1. goto script.google.com , während angemeldet
  2. Starten Sie ein neues Skript
  3. Code einfügen und das Fehlersymbol drücken. Drücken Sie auf Autorisieren.
  4. unter file>menaged versionSpeichern Sie das Skript.
  5. gehe zu Publish>Deploy as web appund presse 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.

Jacob Jan Tuinstra
quelle
1

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, klicken Sie auf diesen Link .

Vielen Dank an @Jacob Jan Tuinstra und @Drawn für ihre Skripte, aber keines war genau 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: Skript-Benutzeroberfläche

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
kgingeri
quelle
Genau das, was ich brauche; Leider hat Google UiApp am 11. Dezember 2014 abgelehnt, sodass dies irgendwann neu geschrieben werden muss. Das ist das Problem mit Cloud-Diensten, nichts funktioniert lange, Sie sind ihrer Gnade ausgeliefert.
Ed Randall
Ja, in der Tat @EdRandall. Ich werde dies im Original aktualisieren - thx
kgingeri
1

Hier finden Sie 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 Jacob oben gezeigt hat. 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 erstellt 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 aus wie das:

Suchen Sie die Benutzeroberfläche des übergeordneten Ordners

Installieren:

  1. goto script.google.com , während angemeldet
  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 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.
Greg L.
quelle
1
Nur eine Anmerkung: "oben" hat keinen wirklichen Kontext in den Antworten, da die Antworten auf verschiedene Arten sortiert werden können. Verlinken Sie besser auf die Antworten, auf die Sie sich beziehen.
Ale
Danke Al, ich bin neu bei StackExchange. Ich habe den obigen Verweis entfernt und stattdessen Links verwendet.
Greg L.
-2

Google hat bereits eine Lösung dafür bereitgestellt:

Angenommen, Sie suchen nach einem PDF-Dokument mit dem Namen myreport.pdf.

Sie suchen nach myreport und erhalten eine Liste der Dokumente, die den Kriterien entsprechen.

Wenn Sie wissen möchten, in welchem ​​Ordner es sich befindet, klicken Sie mit der rechten Maustaste und dann auf In meinem Laufwerk suchen .

Rajiv Jowaheer
quelle