Como visualizar a pasta pai de um documento do Google?


91

Muitas vezes, tenho o link direto para um documento do Google (meu ou um organizacional compartilhado) e quero encontrar documentos armazenados na mesma pasta. Para fazer isso, eu precisaria determinar a pasta em que o documento está.

Existe uma maneira de fazer isso?

Respostas:


72

Um documento pode estar em várias pastas, mas você pode obter uma lista delas através da interface do usuário.

Clique no ícone da pasta ao lado do título do documento. Se o documento estiver em uma única pasta, você poderá ver a pasta que mostra o nome da pasta com um ícone para abrir a pasta em uma nova guia, outros documentos na pasta e opções para mover o documento atual:

insira a descrição da imagem aqui

Se o documento estiver em mais de uma pasta, você obterá uma lista das pastas em que está com hiperlinks para cada uma.

Captura de tela de duas pastas pai


16
Lembro-me que esse "ícone de pasta" estava lá há um tempo, mas já se foi. Alguém sabe como encontrar a pasta pai no novo design?
— Mike Eng

2
O ícone da pasta parece estar de volta agora.
— Vidar S. Ramdal 4/14

4
O texto "Este item está em:" foi movido para a caixa de diálogo que aparece depois que você clica no "ícone da pasta". Infelizmente, isso não parece funcionar para arquivos que você não criou.
— Jedidja 04/04

14
UI do Google Drive é uma bagunça ...
— Franck Dernoncourt

3
@Jangari Sim, por mais absurdo que seja, você obtém hiperlinks se o documento estiver em várias pastas, mas nenhum hiperlink se o documento estiver em apenas uma pasta. Recomendamos que você envie os comentários deste produto ao Google. Talvez eles mudem se receberem feedback suficiente do tipo. google.com/tools/feedback/intl/pt
— Mike Eng

14

Está faltando o ícone da pasta?

Se você encontrar essa pequena pasta faltando à direita do nome do arquivo, poderá escolher File > Document details...pelo menos ver o nome do diretório pai. Por exemplo:

Quando o ícone da pequena pasta está ausente ...

E você encontrará onde diabos Waldo está. Eu me encontrei no mundo-2!


5

Vamos fornecer um meio de ir para a pasta pai do documento com um clique do mouse.

Coloque o script abaixo no editor de script 'contido em contêiner' do seu documento. Faça isso abrindo o documento e, na barra de menus do documento, selecione Ferramentas> Editor de scripts ...

Se for a primeira vez que edita o script desse documento, o código padrão preencherá a tela do editor. Simplesmente substitua o conteúdo do script pelo código abaixo. Inclua as funções onOpen () e listParentFolders () listadas abaixo.

Salve o script no editor e, em seguida, atualize a janela de navegação que exibe o documento associado. Um novo item de menu será exibido para o documento chamado Utils. Clicar no teclado Menu Utils exibirá o pop-up do menu Mostrar caminho. Este script exibirá o caminho do diretório como uma lista de hiperlinks.

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

E se o meu documento for um arquivo do PowerPoint (que não seja do Google Apps) no Google Drive?
— Fuhrmanator 23/03

O @Fuhrmanator acessa-o com a API do DriveApp e não com o DocumentApp; cada arquivo possui um tipo de mimet (tipo de arquivo) no Drive, no qual você pode encontrá-lo, além de um ID de arquivo exclusivo.
— Louis Maddox

Especificamente, para uma pasta com ID id, conjunto source_folder = DriveApp.getFolderById(id)e uso conhecidos source_folder.getFilesByType(MimeType.MICROSOFT_POWERPOINT)ou ...MimeType.MICROSOFT_POWERPOINT_LEGACY(ou você pode usar a cadeia de caracteres mime real que a última parte avalia). Consulte a documentação aqui
— Louis Maddox

5

Desde 04-04-2014, existem algumas maneiras de passar de um documento para a pasta que o contém.

No documento aberto, clique no ícone da pasta ao lado do título do documento. Uma caixa de diálogo é exibida com "Este item está em" e o nome da pasta que contém. O nome da pasta está vinculado à pasta. Se uma caixa de diálogo "Mover para" for exibida, a pasta que contém o documento é a raiz. Se é o seu documento ou se você o adicionou explicitamente, está em Meu Drive. Caso contrário, tente Mais> Todos os itens na lista de pastas à esquerda da exibição da lista de documentos.

Na exibição de pesquisa de documento, selecione o item. Mais> Detalhes e atividade> Detalhes> Pastas. Quaisquer nomes de pastas listados estão vinculados às pastas correspondentes.

Desde 03/12/2014, não consigo mais descobrir como ir de uma exibição de arquivo para a pasta que contém, para arquivos que não são documentos colaborativos do Google. Comente ou edite esta resposta se você souber.


2

AFAIK não, não há como fazer isso a partir do URL do documento ou do próprio documento. Você precisaria pegar o título do documento e procurá-lo na visualização da lista do Drive. Os resultados da pesquisa devem mostrar o título do documento e também mostrar o nome da pasta pai em cinza.


Uma volta, mas é uma solução. Obrigado!
— Claus

1
Útil apenas se o nome da pasta pai for único. Nem sempre é o caso ...
— Fuhrmanator 23/03

@ Fuumanator ainda é útil se o nome da pasta pai não for exclusivo, basta pesquisar em todas as pastas (o que pode ser difícil se o número de pastas for grande, mas ainda assim).
— Thomasw

1

Pasta pai

Eu escrevi um pequeno script que recupera a pasta pai, com base na chave do documento:

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

Se parece com isso

insira a descrição da imagem aqui

Para instalar

  1. vá para script.google.com , enquanto estiver conectado
  2. iniciar um novo script
  3. cole o código e pressione o ícone do bug. Pressione autorizar.
  4. em file>menaged versionsalvar o script.
  5. vá para Publish>Deploy as web appe pressione update
  6. o URL apresentado (exec no final) permitirá que você execute o script independente.

Nota

Somente a pasta pai é mencionada (exatamente o que você queria), mas não divulgará o caminho completo.


1

ATUALIZAÇÃO: o Google retirou essas APIs, então cuidado.

NOTA: isso realmente não é mais necessário usando a nova interface do usuário da unidade ...

  1. quando você pesquisar ou tiver alguma lista de documentos, selecione o arquivo que deseja encontrar
  2. clique no botão [i] (informações) no canto superior direito
  3. clique em "Detalhes" (vs "Atividade" padrão)
  4. você verá o compartilhamento e onde está armazenado, etc.

Percebi que isso já foi respondido, mas, caso as pessoas o encontrem enquanto pesquisavam (eu fiz), adicionarei algumas. Se você é novo no Google App Script, consulte este link .

Graças a @Jacob Jan Tuinstra e @Drawn por seus scripts, mas nem era exatamente o que eu precisava, então usei os dois para criar o meu. O script abaixo precisa ser colado em um editor de scripts do GApps e publicado como um aplicativo da web. O link deve ser salvo / marcado para reutilização posterior:

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

A interface do usuário fica assim: UI do script

Observe que o ID de um arquivo vem de seu URL - ou seja, consulte "<...>" no exemplo de URL abaixo:

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

Exatamente o que eu preciso; infelizmente, o Google descontinuou a UiApp em 11 de dezembro de 2014, portanto isso precisará ser reescrito em algum momento. Esse é o problema dos serviços em nuvem, nada funciona por muito tempo, você está à mercê deles.
— Ed Randall

Sim, de fato, @EdRandall.
— Atualizo

1

Aqui está uma implementação mais completa e confiável dos dois scripts nestas respostas ( primeiro e segundo ) para esta pergunta. Esse script permite colar o URL completo do arquivo ou o ID do arquivo na primeira caixa de edição da caixa de diálogo e, em seguida, retorna uma representação de texto do caminho, bem como um link para o diretório pai. As instruções de instalação são idênticas às mostradas acima por Jacob , copiei-as abaixo para garantir a integridade.

NOTA: Algumas das APIs usadas em todos esses scripts agora estão obsoletas. Eles ainda estão trabalhando quando este post foi feito, mas provavelmente parará de funcionar no futuro.

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

Se parece com isso:

Localizar interface do usuário da pasta pai

Para instalar:

  1. vá para script.google.com , enquanto estiver conectado
  2. iniciar um novo script
  3. cole o código e pressione o ícone do bug. Pressione autorizar.
  4. em arquivo> versão gerenciada, salve o script.
  5. vá para Publicar> Implante como aplicativo Web e pressione atualizar
  6. o URL apresentado (exec no final) permitirá que você execute o script independente.

1
Apenas uma observação: "acima" não tem realmente nenhum contexto nas respostas, pois as respostas podem ser classificadas de maneiras diferentes. Melhor vincular às respostas às quais você está se referindo.
— ale

Obrigado Al, sou novo no StackExchange. Eu removi a referência "acima" e usei os links.
— Greg L.

-2

O Google já forneceu uma solução para isso:

Suponhamos que você esteja procurando um documento em PDF chamado myreport.pdf.

Você procura meu relatório, obtém uma lista de documentos que atendem aos critérios.

Se você deseja saber a pasta em que está, basta clicar com o botão direito e clicar em Localizar em Meu disco .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.