Làm cách nào để xem thư mục gốc của Tài liệu Google?


91

Thường thì tôi có liên kết trực tiếp đến Tài liệu Google (của tôi hoặc của một tổ chức được chia sẻ) và muốn tìm tài liệu được lưu trữ trong cùng một thư mục. Để làm như vậy, tôi sẽ cần xác định thư mục tài liệu nằm trong đó.

Có cách nào làm được việc này không?

Câu trả lời:


72

Một tài liệu có khả năng có thể nằm trong nhiều thư mục, nhưng bạn có thể lấy danh sách chúng thông qua UI.

Nhấp vào biểu tượng thư mục bên cạnh tiêu đề tài liệu. Nếu tài liệu nằm trong một thư mục, bạn có thể xem vào thư mục đó hiển thị tên thư mục có biểu tượng để mở thư mục trong tab mới, các tài liệu khác trong thư mục và các tùy chọn để di chuyển tài liệu hiện tại:

nhập mô tả hình ảnh ở đây

Nếu tài liệu nằm trong nhiều thư mục, bạn sẽ nhận được một danh sách các thư mục chứa trong đó với các siêu liên kết.

Ảnh chụp màn hình của hai thư mục mẹ


16
Tôi nhớ "biểu tượng thư mục" này ở đó một thời gian, nhưng nó đã biến mất. Bất cứ ai cũng biết làm thế nào để tìm thư mục cha mẹ trong thiết kế mới?
Mike Eng

2
Biểu tượng thư mục dường như đã trở lại.
Vidar S. Ramdal

4
Văn bản "Mục này nằm trong:" hiện đã được chuyển đến hộp thoại xuất hiện sau khi bạn nhấp vào "biểu tượng thư mục". Thật không may, điều này dường như không hoạt động đối với các tệp bạn chưa tạo.
Jedidja

14
Giao diện người dùng của Google Drive là một thứ lộn xộn như vậy
Franck Dernoncourt

3
@Jangari Có, như vô nghĩa, bạn nhận được siêu liên kết nếu tài liệu nằm trong nhiều thư mục, nhưng không có siêu liên kết nếu tài liệu chỉ trong một thư mục. Tôi khuyến khích bạn gửi phản hồi sản phẩm này cho Google. Có lẽ họ sẽ thay đổi nó nếu họ nhận được đủ thông tin phản hồi của loại này. google.com/tools/feedback/intl/en
Mike Eng

14

Thiếu biểu tượng thư mục?

Nếu bạn thấy thư mục nhỏ đó bị thiếu ở bên phải tên tệp, thì bạn có thể chọn File > Document details...ít nhất là xem tên thư mục mẹ. Ví dụ:

Khi biểu tượng thư mục nhỏ bị thiếu ...

Và bạn sẽ tìm thấy địa ngục Waldo ở đâu. Tôi thấy mình ở thế giới-2!


5

Hãy cung cấp một phương tiện để đi đến thư mục mẹ của tài liệu với một cú nhấp chuột.

Đặt tập lệnh bên dưới trong trình chỉnh sửa tập lệnh 'giới hạn vùng chứa' của tài liệu của bạn. Thực hiện việc này bằng cách mở tài liệu của bạn và sau đó từ thanh menu tài liệu, chọn Công cụ> Trình chỉnh sửa tập lệnh ...

Nếu đây là lần đầu tiên bạn chỉnh sửa tập lệnh của tài liệu đó, mã mặc định sẽ điền vào màn hình của trình chỉnh sửa. Đơn giản chỉ cần thay thế nội dung tập lệnh bằng mã dưới đây. Bao gồm cả hàm onOpen () và listParentFolders () được liệt kê bên dưới.

Lưu tập lệnh trong trình chỉnh sửa và sau đó 'làm mới' cửa sổ duyệt hiển thị tài liệu được liên kết. Một mục menu mới sẽ xuất hiện cho tài liệu có tên Utils. Nhấp vào bảng Menu Utils sẽ hiển thị cửa sổ bật lên menu, Hiển thị đường dẫn. Kịch bản lệnh này sẽ hiển thị đường dẫn thư mục dưới dạng danh sách các siêu liên kết.

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

Điều gì xảy ra nếu tài liệu của tôi là tệp PowerPoint (không phải ứng dụng Google) trên ổ đĩa google?
Fuhrmanator

@Fuhrmanator truy cập nó bằng API DriveApp chứ không phải DocumentApp, mỗi tệp có một mimetype (filetype) trong Drive bạn có thể tìm thấy nó cũng như ID tệp duy nhất.
Louis Maddox

Cụ thể, đối với một thư mục có id đã biết id, hãy đặt source_folder = DriveApp.getFolderById(id)và sử dụng source_folder.getFilesByType(MimeType.MICROSOFT_POWERPOINT)hoặc ...MimeType.MICROSOFT_POWERPOINT_LEGACY(hoặc bạn có thể sử dụng chuỗi loại mime thực tế mà phần sau ước tính). Xem tài liệu ở đây
Louis Maddox

5

Kể từ 2014-04-04, có một vài cách để lấy từ một tài liệu đến thư mục chứa nó.

Từ tài liệu mở, nhấp vào biểu tượng thư mục bên cạnh tiêu đề của tài liệu. Một hộp thoại xuất hiện với "Mục này nằm trong" và tên thư mục chứa. Tên thư mục được liên kết với thư mục. Nếu thay vào đó, hộp thoại "Chuyển đến" xuất hiện, thư mục chứa tài liệu là thư mục gốc. Nếu đó là tài liệu của bạn hoặc hoặc bạn đã thêm nó một cách rõ ràng, thì đó là trong My Drive. Nếu không, hãy thử Thêm> Tất cả các mục trong danh sách thư mục ở bên trái của chế độ xem danh sách tài liệu.

Từ giao diện tìm kiếm tài liệu, chọn mục. Thêm> Chi tiết và hoạt động> Chi tiết> Thư mục. Bất kỳ tên thư mục được liệt kê được liên kết với các thư mục tương ứng.

Kể từ 2014-12-03, tôi không còn có thể tìm ra cách chuyển từ chế độ xem tệp aa sang thư mục chứa tệp đó, đối với các tệp không phải là tài liệu Google hợp tác. Hãy bình luận hoặc chỉnh sửa câu trả lời này nếu bạn biết cách.


2

AFAIK không, không có cách nào để làm điều này từ URL tài liệu hoặc chính tài liệu. Bạn cần lấy tiêu đề của tài liệu và tìm kiếm nó trong chế độ xem danh sách Drive. Kết quả tìm kiếm sẽ hiển thị cho bạn tiêu đề tài liệu, sau đó cũng hiển thị tên của thư mục mẹ có màu xám.


Một vòng về cách nhưng đó là một giải pháp. Cảm ơn!
Claus

1
Chỉ hữu ích nếu tên thư mục mẹ của bạn là duy nhất. Không phải lúc nào cũng như vậy ...
Fuhrmanator

@Fuhrmanator vẫn hữu ích nếu tên thư mục mẹ không phải là duy nhất, bạn chỉ cần tìm kiếm trong tất cả các thư mục (có thể khó khăn nếu # của các thư mục lớn, nhưng vẫn còn).
ThomasW

1

Thư mục mẹ

Tôi đã viết một đoạn script nhỏ lấy thư mục mẹ, dựa trên khóa của tài liệu:

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

Nó trông như thế này

nhập mô tả hình ảnh ở đây

Để cài đặt

  1. goto script.google.com , trong khi đăng nhập
  2. bắt đầu một kịch bản mới
  3. dán mã và nhấn biểu tượng lỗi. Báo chí ủy quyền.
  4. dưới file>menaged versionlưu tập lệnh.
  5. goto Publish>Deploy as web appvà nhấn cập nhật
  6. url được trình bày (thực hiện ở cuối) sẽ cho phép bạn chạy tập lệnh độc lập.

Ghi chú

Chỉ thư mục mẹ được đề cập (chính xác những gì bạn muốn) nhưng nó sẽ không tiết lộ đường dẫn đầy đủ.


1

CẬP NHẬT: Google đã nghỉ hưu các API này vì vậy hãy cẩn thận.

LƯU Ý: điều này thực sự không còn cần thiết khi sử dụng UI ổ đĩa mới ...

  1. khi bạn tìm kiếm hoặc có bất kỳ danh sách tài liệu nào, xin chào tập tin bạn cần tìm
  2. nhấp vào nút [i] (thông tin) ở phía trên bên phải
  3. nhấp vào "Chi tiết" (so với "Hoạt động" mặc định)
  4. bạn sẽ thấy chia sẻ và nơi nó được lưu trữ, vv

Tôi nhận ra điều này đã được trả lời, nhưng chỉ trong trường hợp mọi người tìm thấy nó trong khi tìm kiếm (tôi đã làm) tôi sẽ thêm một số vào nó. Nếu bạn chưa quen với Google App Script, hãy xem liên kết này .

Cảm ơn @Jacob Jan Tuinstra và @Drawn cho các kịch bản của họ, nhưng đó không phải là thứ tôi cần, vì vậy tôi đã sử dụng cả hai thứ của họ để tạo ra cái của tôi. Tập lệnh bên dưới cần được dán vào trình chỉnh sửa tập lệnh GApps, sau đó được xuất bản dưới dạng ứng dụng web. Liên kết nên được lưu / đánh dấu để sử dụng lại sau:

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

Giao diện người dùng trông như thế này: Giao diện người dùng tập lệnh

Lưu ý rằng ID của tệp đến từ URL của nó - tức là xem "<...>" trong mẫu URL bên dưới:

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

Chính xác những gì tôi cần; thật đáng buồn khi Google đã từ chối UiApp vào ngày 11 tháng 12 năm 2014 vì vậy điều này sẽ cần phải viết lại vào một lúc nào đó. Đó là rắc rối với các dịch vụ đám mây, không có gì hoạt động lâu dài, bạn đang thương xót họ.
Ed Randall

Có thực sự @EdRandall. Tôi sẽ cập nhật thông tin này trong bản gốc - thx
kgingeri

1

Dưới đây là một triển khai đầy đủ và đáng tin cậy hơn của hai tập lệnh trong các câu trả lời này (câu thứ nhất và câu thứ hai ) cho câu hỏi này. Tập lệnh này cho phép bạn dán URL đầy đủ của tệp hoặc ID tệp vào hộp chỉnh sửa đầu tiên trong hộp thoại và sau đó trả về biểu thị văn bản của đường dẫn cũng như liên kết đến thư mục mẹ. Các hướng dẫn cài đặt giống hệt với những gì được hiển thị ở trên bởi Jacob , tôi đã sao chép chúng bên dưới cho đầy đủ.

LƯU Ý: Một số API được sử dụng trong tất cả các tập lệnh này hiện đã lỗi thời. Họ vẫn đang làm việc khi bài đăng này được thực hiện, nhưng có lẽ sẽ ngừng hoạt động trong tương lai.

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

Nó trông như thế này:

Tìm giao diện người dùng thư mục cha

Để cài đặt:

  1. goto script.google.com , trong khi đăng nhập
  2. bắt đầu một kịch bản mới
  3. dán mã và nhấn biểu tượng lỗi. Báo chí ủy quyền.
  4. trong tập tin> phiên bản được quản lý lưu tập lệnh.
  5. goto Xuất bản> Triển khai dưới dạng ứng dụng web và nhấn cập nhật
  6. url được trình bày (thực hiện ở cuối) sẽ cho phép bạn chạy tập lệnh độc lập.

1
Chỉ cần một lưu ý: "ở trên" không thực sự có bất kỳ bối cảnh nào trong câu trả lời, vì câu trả lời có thể được sắp xếp theo các cách khác nhau. Tốt hơn để liên kết đến các câu trả lời mà bạn đang đề cập đến.
ale

Cảm ơn Al, tôi mới biết đến StackExchange. Tôi đã loại bỏ các tham chiếu "ở trên" và sử dụng các liên kết thay thế.
Greg L.

-2

Google đã cung cấp một giải pháp cho điều đó:

Giả sử bạn đang tìm kiếm một tài liệu pdf có tên myreport.pdf.

Bạn tìm kiếm myreport, bạn nhận được một danh sách các tài liệu đáp ứng các tiêu chí.

Nếu bạn muốn biết thư mục nằm trong đó, chỉ cần Nhấp chuột phải và Nhấp vào Định vị trong Ổ đĩa của tôi .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.