Bagaimana cara melihat folder induk dari Dokumen Google?

91

Seringkali saya memiliki tautan langsung ke Dokumen Google (milik saya atau yang dibagikan organisasi) dan ingin mencari dokumen yang disimpan dalam folder yang sama. Untuk melakukannya, saya perlu menentukan folder tempat dokumen itu berada.

Apakah ada cara untuk melakukan itu?

Claus
sumber

Jawaban:

72

Dokumen berpotensi berada dalam beberapa folder, tetapi Anda bisa mendapatkan daftar melalui UI.

Klik ikon folder di sebelah judul dokumen. Jika dokumen berada dalam satu folder, Anda mendapatkan tampilan ke folder tunggal yang menunjukkan nama folder dengan ikon untuk membuka folder di tab baru, dokumen lain di folder, dan opsi untuk memindahkan dokumen saat ini:

masukkan deskripsi gambar di sini

Jika dokumen ada di lebih dari satu folder, Anda mendapatkan daftar folder yang ada di dalamnya dengan hyperlink masing-masing.

Cuplikan layar dua folder induk

pkaeding
sumber
16
Saya ingat "ikon folder" ini ada di sana beberapa waktu lalu, tetapi sekarang sudah tidak ada. Adakah yang tahu cara menemukan folder induk dalam desain baru?
Mike Eng
2
Ikon folder sepertinya kembali sekarang.
Vidar S. Ramdal
4
Teks "Item ini ada di:" kini telah pindah ke dialog yang muncul setelah Anda mengklik "ikon folder". Sayangnya, ini tampaknya tidak berfungsi untuk file yang belum Anda buat.
Jedidja
14
UI Google Drive berantakan ...
Franck Dernoncourt
3
@Jangari Ya, tidak masuk akal seperti itu, Anda mendapatkan hyperlink jika dokumen ada di beberapa folder, tetapi tidak ada hyperlink jika dokumen hanya ada dalam satu folder. Saya mendorong Anda untuk mengirimkan umpan balik produk ini ke Google. Mungkin mereka akan mengubahnya jika mendapat umpan balik yang cukup. google.com/tools/feedback/intl/en
Mike Eng
14

Ikon Folder Hilang?

Jika Anda menemukan folder kecil itu hilang di sebelah kanan nama file, maka Anda dapat memilih File > Document details...untuk setidaknya melihat nama direktori induk. Misalnya:

Ketika ikon folder kecil hilang ...

Dan Anda akan menemukan di mana Waldo berada. Saya menemukan diri saya di dunia ke-2!

broc.seib
sumber
5

Mari kita berikan sarana untuk pergi ke folder induk dokumen dengan mengklik mouse.

Tempatkan skrip di bawah ini di editor skrip 'terikat wadah' dokumen Anda. Lakukan ini dengan membuka dokumen Anda dan kemudian dari bilah menu dokumen, pilih Alat> Editor skrip ...

Jika ini adalah pertama kalinya Anda mengedit skrip dokumen itu, kode default akan mengisi layar editor. Cukup ganti konten skrip dengan kode di bawah ini. Sertakan fungsi onOpen () dan listParentFolders () yang tercantum di bawah ini.

Simpan skrip di editor dan kemudian 'segarkan' jendela jelajah yang menampilkan dokumen terkait. Item menu baru akan muncul untuk dokumen bernama Utils. Mengklik pada pad Menu Utils akan menampilkan menu popup, Show Path. Script ini akan menampilkan jalur direktori sebagai daftar hyperlink.

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);
}
Ditarik
sumber
Bagaimana jika dokumen saya adalah file PowerPoint (bukan aplikasi Google) di google drive?
Fuhrmanator
@Fuhrmanator mengaksesnya dengan DriveApp API bukan DocumentApp, setiap file memiliki mimetype (filetype) di Drive yang dapat Anda temukan di dalamnya serta ID file unik.
Louis Maddox
Secara khusus, untuk folder id yang dikenal id, set source_folder = DriveApp.getFolderById(id), dan gunakan source_folder.getFilesByType(MimeType.MICROSOFT_POWERPOINT)atau ...MimeType.MICROSOFT_POWERPOINT_LEGACY(atau Anda dapat menggunakan string tipe mime aktual yang dievaluasi oleh bagian terakhir). Lihat dokumen di sini
Louis Maddox
5

Pada 2014-04-04, ada beberapa cara untuk mendapatkan dari dokumen ke folder yang berisi.

Dari dokumen terbuka, klik ikon folder di sebelah judul dokumen. Dialog muncul dengan "Item ini ada di" dan nama folder yang berisi. Nama folder ditautkan ke folder. Jika dialog "Pindah ke" muncul sebagai gantinya, folder yang berisi dokumen adalah root. Jika dokumen Anda atau Anda menambahkannya secara eksplisit, itu ada di Drive Saya. Jika tidak, coba Selengkapnya> Semua Item dalam daftar folder di sebelah kiri tampilan daftar dokumen.

Dari tampilan pencarian dokumen, pilih item. Selengkapnya> Detail dan aktivitas> Detail> Folder. Setiap nama folder yang tercantum ditautkan ke folder yang sesuai.

Mulai 2014-12-03, saya tidak bisa lagi mencari tahu cara mendapatkan dari tampilan file ke folder yang berisi, untuk file yang bukan merupakan dokumen Google kolaboratif. Berikan komentar atau edit jawaban ini jika Anda tahu caranya.

Matt McClure
sumber
2

AFAIK tidak, tidak ada cara untuk melakukan ini dari URL dokumen atau dokumen itu sendiri. Anda harus mengambil judul dokumen dan mencarinya di tampilan daftar Drive Anda. Hasil pencarian akan menunjukkan kepada Anda judul dokumen, kemudian juga menunjukkan nama folder induk dalam warna abu-abu.

OnenOnlyWalter
sumber
Seputar jalan tapi itu solusi. Terima kasih!
Claus
1
Hanya berguna jika nama folder orang tua Anda unik. Tidak selalu demikian ...
Fuhrmanator
@Fuhrmanator masih berguna jika nama folder induk tidak unik, Anda hanya perlu mencari melalui semua folder (yang mungkin sulit jika # folder besar, tapi tetap saja).
ThomasW
1

Folder induk

Saya menulis sebuah skrip kecil yang mengambil folder induk, berdasarkan kunci dokumen:

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

Ini terlihat seperti ini

masukkan deskripsi gambar di sini

Untuk memasang

  1. goto script.google.com , saat masuk
  2. mulai skrip baru
  3. rekatkan kode dan tekan ikon bug. Tekan otorisasi.
  4. di bawah file>menaged versionsimpan skrip.
  5. goto Publish>Deploy as web appdan tekan pembaruan
  6. url yang disajikan (exec di akhir) akan memungkinkan Anda untuk menjalankan skrip stand-a-lone.

Catatan

Hanya folder induk yang disebutkan (persis apa yang Anda inginkan) tetapi tidak akan mengungkapkan path lengkap.

Jacob Jan Tuinstra
sumber
1

UPDATE: Google telah menghentikan API ini jadi waspadalah.

CATATAN: ini benar-benar tidak lagi diperlukan menggunakan drive UI baru ...

  1. ketika Anda mencari atau memiliki daftar dokumen apa pun, hi-lite file yang Anda temukan
  2. klik tombol [i] (info) di kanan atas
  3. klik di "Detail" (vs "Aktivitas" default)
  4. Anda akan melihat berbagi dan di mana disimpan, dll

Saya menyadari ini sudah dijawab, tetapi kalau-kalau orang menemukannya saat mencari (saya lakukan) saya akan menambahkan beberapa ke dalamnya. Jika Anda baru menggunakan Google App Script, lihat tautan ini .

Terima kasih kepada @Jacob Jan Tuinstra dan @Drawn untuk skrip mereka, tetapi tidak cukup yang saya butuhkan, jadi saya menggunakan keduanya untuk membuat milik saya. Skrip di bawah ini harus disisipkan ke dalam editor skrip GApps, kemudian dipublikasikan sebagai aplikasi web. Tautan harus disimpan / ditandai untuk digunakan kembali nanti:

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 terlihat seperti ini: UI skrip

Perhatikan bahwa ID file berasal dari URL-nya - yaitu lihat "<...>" dalam contoh URL di bawah ini:

https://docs.google.com/a/your_domain/spreadsheet/ccc?key=<...>&usp=drive_web#gid=0
kgingeri
sumber
Persis apa yang saya butuhkan; sayangnya Google tidak lagi menggunakan UiApp pada 11 Desember 2014 sehingga ini akan perlu ditulis ulang di beberapa titik. Itulah masalah dengan layanan cloud, tidak ada yang bekerja lama, Anda berada di tangan mereka.
Ed Randall
Ya memang @EdRandall. Saya akan memperbarui ini di asli - thx
kgingeri
1

Berikut ini adalah implementasi kedua skrip yang lebih lengkap dan andal dalam jawaban ini ( pertama dan kedua ) untuk pertanyaan ini. Script ini memungkinkan Anda untuk menempel URL lengkap file atau ID file ke dalam kotak edit pertama dalam dialog dan kemudian mengembalikan representasi teks dari path serta tautan ke direktori induk. Instruksi instalasi identik dengan apa yang ditunjukkan di atas oleh Jacob , saya menyalinnya di bawah ini untuk kelengkapan.

CATATAN: Beberapa API yang digunakan dalam semua skrip ini sekarang sudah usang. Mereka masih bekerja pada saat posting ini dibuat, tetapi mungkin akan berhenti bekerja di masa depan.

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

Ini terlihat seperti ini:

Temukan UI folder induk

Untuk memasang:

  1. goto script.google.com , saat masuk
  2. mulai skrip baru
  3. rekatkan kode dan tekan ikon bug. Tekan otorisasi.
  4. dalam file> versi menaged simpan skrip.
  5. goto Terbitkan> Sebarkan sebagai aplikasi web dan tekan pembaruan
  6. url yang disajikan (exec di akhir) akan memungkinkan Anda untuk menjalankan skrip stand-a-lone.
Greg L.
sumber
1
Hanya sebuah catatan: "di atas" tidak benar-benar memiliki konteks dalam jawaban, karena jawaban dapat diurutkan dengan cara yang berbeda. Lebih baik menautkan ke jawaban yang Anda maksud.
ale
Terima kasih Al, saya baru di StackExchange. Saya menghapus referensi "di atas" dan menggunakan tautan.
Greg L.
-2

Google telah memberikan solusi untuk itu:

Misalkan Anda mencari dokumen pdf bernama myreport.pdf.

Anda mencari laporan saya, Anda mendapatkan daftar dokumen yang memenuhi kriteria.

Jika Anda ingin mengetahui folder tempatnya, cukup Klik Kanan dan Klik Temukan di Drive Saya .

Rajiv Jowaheer
sumber