Bir Google Dokümanın ana klasörünü nasıl görebilirim?


91

Genellikle bir Google Dokümanı ile doğrudan bağlantıya sahibim (benim veya bir kuruluş tarafından paylaşılan) ve aynı klasörde saklanan dokümanları bulmak istiyorum. Bunu yapmak için, belgenin bulunduğu klasörü belirlemem gerekir.

Bunu yapmanın bir yolu var mı?

Yanıtlar:


72

Bir belge potansiyel olarak birden fazla klasörde olabilir, ancak UI aracılığıyla bunların bir listesini alabilirsiniz.

Belge başlığının yanındaki klasör simgesini tıklayın. Belge tek bir klasördeyse, klasörü yeni bir sekmede açmak için bir simgeyle klasör adını gösteren tek bir klasöre, klasördeki diğer belgelere ve geçerli belgeyi taşıma seçeneklerini görüntüleyebilirsiniz:

görüntü tanımını buraya girin

Belge birden fazla klasördeyse, her birine köprü içeren klasörlerin listesini alırsınız.

İki üst klasörün ekran görüntüsü


16
Bu "klasör simgesi" nin bir süre önce orada olduğunu hatırlıyorum, ama şimdi gitti. Yeni tasarımda ana klasörü nasıl bulacağınızı bilen var mı?
Mike Eng

2
Klasör simgesi şimdi geri görünüyor.
Vidar S. Ramdal

4
"Bu öğe içinde:" metni artık "klasör simgesini" tıklattıktan sonra görüntülenen iletişim kutusuna taşındı. Maalesef, bu sizin oluşturmadığınız dosyalar için işe yaramaz gibi görünüyor.
Jedidja

14
Google Drive'ın kullanıcı arayüzü çok karışık bir durum…
Franck Dernoncourt

3
@Jangari Evet, olduğu gibi saçma sapan, belge birden fazla klasördeyse köprüler alırsınız, ancak belge yalnızca bir klasördeyken köprü olmaz. Bu ürün geri bildirimini Google’a göndermenizi tavsiye ederim. Belki sıralama hakkında yeterince geri bildirim alırlarsa değiştireceklerdir. google.com/tools/feedback/intl/tr
Mike Eng

14

Klasör Simgesini Kaçırmak?

Dosya adının sağında eksik olan küçük klasörü bulursanız, File > Document details...en azından üst dizin adını görmeyi seçebilirsiniz . Örneğin:

Küçük klasör simgesi eksik olduğunda ...

Ve Waldo'nun nerede olduğunu göreceksin. Kendimi dünya-2'de buldum!


5

Fare tıklamasıyla belgenin ana klasörüne gitmek için bir araç sağlayalım.

Aşağıdaki betiği belgenizin 'container-bağlı' komut dosyası düzenleyicisine yerleştirin. Bunu, belgenizi açarak ve ardından belge menü çubuğundan, Araçlar> Komut Dosyası düzenleyicisi ... öğesini seçin.

Bu belgenin komut dosyasını ilk kez düzenliyorsanız, varsayılan kod düzenleyicinin ekranını doldurur. Sadece script içeriğini aşağıdaki kodla değiştirin. Hem onOpen () hem de listParentFolders () işlevini aşağıda listelenenleri ekleyin.

Komut dosyasını düzenleyicide kaydedin ve ardından ilişkili belgeyi görüntüleyen göz atma penceresini 'yenileyin'. Utils adlı belge için yeni bir menü maddesi görünecektir. Utils Menü tuşunu tıkladığınızda, açılan menü, Yol Göster gösterilir. Bu komut dosyası, dizin yolunu köprüler listesi olarak görüntüler.

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

Belgem google sürücüdeki bir PowerPoint (Google uygulamaları olmayan) dosyasıysa?
Fuhrmanator

@Fuhrmanator DriveApp API'sı ile DocumentApp'a erişemez, Drive'da her dosyanın benzersiz bir dosya kimliğinin yanı sıra bulabileceğiniz bir mimetipe (filetype) sahiptir.
Louis Maddox

Özellikle, bilinen bir kimliği olan bir klasör için id, ayarlayın source_folder = DriveApp.getFolderById(id)ve kullanın source_folder.getFilesByType(MimeType.MICROSOFT_POWERPOINT)veya ...MimeType.MICROSOFT_POWERPOINT_LEGACY(veya sonraki bölümün değerlendirdiği gerçek mime tipi dizgiyi kullanabilirsiniz). Burada dokümanlar
Louis Maddox

5

2014-04-04 itibariyle, bir belgeden içerdiği klasöre ulaşmanın birkaç yolu var.

Açık belgeden, belgenin başlığının yanındaki klasör simgesini tıklayın. "Bu öğe içinde" ve içeren klasör adının bulunduğu bir iletişim kutusu görüntülenir. Klasör adı klasöre bağlanır. Bunun yerine "Taşı" iletişim kutusu görünürse, belgenin içeren klasörü köktür. Bu sizin belgeniz veya açık bir şekilde eklediyseniz, My Drive'dadır. Değilse, belge listesi görünümünün solundaki klasör listesinde Diğer> Tüm Öğeler'i deneyin.

Belge arama görünümünden öğeyi seçin. Diğer> Ayrıntılar ve etkinlik> Ayrıntılar> Klasörler. Listelenen herhangi bir klasör adı ilgili klasörlere bağlanır.

2014-12-03 tarihi itibariyle, ortak Google dokümanları olmayan dosyalar için artık bir dosya görünümünden içerdiği klasöre nasıl erişeceğimi çözemiyorum. Lütfen nasıl olduğunu biliyorsanız bu cevabı yorumlayın veya düzenleyin.


2

AFAIK hayır, bunu belge URL'sinden veya belgenin kendisinden yapmanın bir yolu yoktur. Dokümanın başlığını alıp Sürücü listesi görünümünde aramanız gerekir. Arama sonuçları size belge başlığını göstermeli, ayrıca ana klasörün adını gri olarak göstermelidir.


Bir yol etrafında bir tur ama bu bir çözüm. Teşekkürler!
Claus,

1
Yalnızca üst klasör adınız benzersizse kullanışlıdır. Her zaman durum böyle değil ...
Fuhrmanator

@Fuhrmanator, ana klasör adı benzersiz değilse hala kullanışlıdır, sadece tüm klasörleri aramanız gerekir (eğer klasör sayısı büyükse ama yine de zor olabilir).
ThomasW

1

Ana klasör

Belgenin anahtarına bağlı olarak ana klasörü alan küçük bir komut dosyası yazdım:

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

Bu gibi görünüyor

görüntü tanımını buraya girin

Yüklemek

  1. Goto script.google.com , oturum sırasında
  2. yeni bir komut dosyası başlat
  3. kodu yapıştırın ve hata simgesine basın. Basın yetkilendirin.
  4. altında file>menaged versionbetiği kaydedin.
  5. git Publish>Deploy as web appve basın güncellemesi
  6. Sunulan URL (sonunda yürütme), tek başına bir komut dosyası çalıştırmanıza izin verir.

Not

Yalnızca ana klasörden bahsedilir (tam olarak ne istediğinizi), ancak tam yolu açıklamaz.


1

GÜNCELLEME: Google, bu API’lerin emekli olduğu emekli olmuştur.

NOT: bu gerçekten yeni sürücü UI'sini kullanarak gerekli değildir ...

  1. aradığınızda veya herhangi bir belge listeniz varsa, bulacağınız dosyayı hi-lite
  2. sağ üstteki [i] (bilgi) düğmesine tıklayın
  3. "Detaylar" a tıklayın (vs "varsayılan" aktivite ")
  4. paylaşmayı ve nerede saklandığını vb. göreceksiniz.

Bunun çoktan cevaplanmış olduğunu fark ettim, ancak insanların arama sırasında bulması durumunda (yaptım), bazılarını ekleyeceğim. Google App Script’te yeniyseniz bu bağlantıya bakın .

@Jocob Jan Tuinstra ve @Drawn'a senaryoları için teşekkürler, ama ikisi de ihtiyacım olan şey değildi, ben de ikisini de benimkileri için kullandım. Aşağıdaki komut dosyasının bir GApps komut dosyası düzenleyicisine yapıştırılması ve ardından bir web uygulaması olarak yayınlanması gerekir. Bağlantı daha sonra tekrar kullanılmak üzere kaydedilmeli / işaretlenmelidir:

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 şöyle gözüküyor: Komut Dosyası Kullanıcı Arabirimi

Bir dosyanın kimliğinin URL'sinden geldiğini unutmayın; örneğin, aşağıdaki URL örneğindeki "<...>" bölümüne bakın:

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

Tam olarak ihtiyacım olan şey; ne yazık ki Google, 11 Aralık 2014 tarihinde UiApp'ı kullanımdan kaldırmıştır, bu nedenle bir noktada yeniden yazmaya ihtiyaç duyacaktır. Bulut hizmetlerinde sorun bu, hiçbir şey uzun sürmez, onların insafına kalırsınız.
Ed Randall

Evet gerçekten @EdRandall. Bunu orijinalinde güncelleyeceğim - thx
kgingeri

1

İşte bu soruya bu cevaplarda ( birincisi ve birincisi ) iki betiğin daha eksiksiz ve güvenilir bir uygulaması . Bu komut dosyası, dosyanın tam URL'sini veya dosya kimliğini, iletişim kutusundaki ilk düzenleme kutusuna yapıştırmanıza olanak sağlar ve ardından yolun bir metin gösterimini ve ana dizine bir bağlantı döndürür. Kurulum talimatları yukarıda Jacob tarafından gösterilenlerle aynıdır , eksiksiz olmaları için bunları aşağıda kopyaladım.

NOT: Bu komut dosyalarının hepsinde kullanılan bazı API'ler artık kullanılmamaktadır. Onlar hala bu görev yapıldığı zamandan beri çalışıyorlar, ancak gelecekte çalışmayı bırakacaklar.

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

Bu gibi görünüyor:

Üst klasör kullanıcı arabirimini bulun

Yüklemek:

  1. Goto script.google.com , oturum sırasında
  2. yeni bir komut dosyası başlat
  3. kodu yapıştırın ve hata simgesine basın. Basın yetkilendirin.
  4. file> menaged version altında, betiği kaydedin.
  5. Yayınla> Web uygulaması olarak dağıt ve basın güncellemesi
  6. Sunulan URL (sonunda yürütme), tek başına bir komut dosyası çalıştırmanıza izin verir.

1
Sadece bir not: "Yukarıda" gerçekten cevaplarda herhangi bir bağlam yoktur, çünkü cevaplar farklı şekillerde sıralanabilir. Bahsettiğiniz cevaplara bağlantı vermek daha iyi.
ale

Teşekkürler Al, StackExchange'te yeniyim. "Yukarıdaki" referansı kaldırdım ve bunun yerine bağlantıları kullandım.
Greg L.

-2

Google zaten buna bir çözüm sağladı:

Diyelim ki myreport.pdf adında bir pdf belgesi arıyoruz.

Raporumu araştırıyorsanız, kriterleri karşılayan belgelerin bir listesini alırsınız.

İçinde bulunduğu klasörü bilmek istiyorsanız, sağ tıklayın ve Sürücümde Bul'u tıklayın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.