Danh sách tên thư mục con và liên kết tệp trong trang tính google - script


0

Tôi đang cố gắng để có được danh sách Google Sheet liên kết tệp trong các thư mục và thư mục con mà tôi đang giữ trong Google Drive. Nó sẽ trông giống như thế này:

một thư mục chính với một vài thư mục con bên trong

Tôi đã googling và đọc các diễn đàn trong một thời gian khá lâu nhưng tôi chỉ tìm thấy một vài ví dụ về kịch bản và không phải tất cả chúng đều hoạt động. Tôi tìm thấy một tập lệnh không quá tệ vì nó mang đến một danh sách các tập tin có liên kết trong một thư mục. nhưng tôi muốn có một danh sách các tập tin với các liên kết trong các thư mục con. Lý tưởng nhất là tất cả các liên kết thư mục và tên mục sẽ được liệt kê trong một ô có dấu phân cách "|". một trong những ví dụ kịch bản hay nhất mà tôi tìm thấy cho đến nay là:

function listFilesInFolder(folderName) {

var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(["Name", "File-Id"]);


//change the folder ID below to reflect your folder's ID (look in the            URL when you're in your folder)
var folder = DriveApp.getFolderById("0ByQ9Zp2ge-pzSjhKdHVWWk0wNnc");
var contents = folder.getFiles();

var cnt = 0;
var file;

while (contents.hasNext()) {
    var file = contents.next();
    cnt++;

       data = [
            file.getName(),
            file.getId(),
        ];

        sheet.appendRow(data);
    };
};

và nó mang lại kết quả trong một tờ

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

Nó sẽ được đánh giá cao nếu bất cứ ai có thể giúp để có được một phiên bản tốt hơn của mã này.

psThere cũng là một vài kịch bản lớn hơn mà tôi sẽ cần trong tương lai mà tôi sẵn sàng trả tiền. xin vui lòng nhắn tin cho tôi nếu bạn quan tâm.


1
Bạn đang hỏi một câu hỏi ngoài chủ đề. Vui lòng đọc On-Topic , làm thế nào để tôi hỏi một câu hỏi hay? những loại câu hỏi tôi nên tránh hỏi? .
DavidPostill

Câu trả lời:


0
// replace Guitar_Score below with the folder for which you want a listing with all subfolders
function listFolderContents() {
  var foldername = 'Guitar_Score';
  // file with this name will be saved in your goolge files
  var folderlisting = 'listing of folder ' + foldername;  
  var ss = SpreadsheetApp.create(folderlisting);
  var sheet = ss.getActiveSheet();
  var folders = DriveApp.getFoldersByName(foldername)
  var folder = folders.next();                  
  //listFilesInFolder(folder, sheet);
  traverseFolder(folder, sheet);
};

function traverseFolder(folder, sheet) { 
  listFilesInFolder(folder, sheet);  
  var subFolders = folder.getFolders();
  while (subFolders.hasNext()) {
    traverseFolder(subFolders.next(), sheet);
  }
}

function listFilesInFolder(folder, sheet) {
  var foldername = folder.getName();
  var contents = folder.getFiles();  
  sheet.appendRow( ['...', foldername] );    
  while(contents.hasNext()) {
    var file = contents.next();
    var name = file.getName();
    var link = file.getUrl();
    sheet.appendRow( [name, link] );     
  } 
}
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.