我正在尝试将文件夹中的文件和URL列表添加到Google工作表中。我拿起了这段代码,但无法实现。当我运行它(替换适当的文件夹名称)时,它仍然无法识别。我已根据需要授予权限。我只是一个试图加快工作量的学生。我对此很陌生,请保持温柔。我在.gs(底部)中的其他功能似乎正常。
/* Code written by @hubgit
<style>.gist table { margin-bottom: 0; }</style><div class="gist-oembed" data-gist="hubgit/3755293.json"></div>
Updated since DocsList is deprecated
*/
function listFilesInFolder(folderName) {
var folder = DriveApp.getFoldersByName(folderName).next();
var contents = folder.getFiles();
SpreadsheetApp.getActiveSheet().getRange("H1").setValue(contents.length);
var file, data, sheet = SpreadsheetApp.getActiveSheet();
//sheet.clear();
//sheet.appendRow("a");
sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type"]);
for (var i = 0; i < contents.length; i++) {
file = contents[i];
if (file.getFileType() == "SPREADSHEET") {
continue;
}
data = [
file.getName(),
file.getDateCreated(),
file.getSize(),
file.getUrl(),
"https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
file.getDescription(),
file.getFileType().toString()
];
sheet.appendRow(data);
}
};
我的工作职能:
function sheetCount(){
return SpreadsheetApp.getActive().getSheets().length;
}
function SheetIndex2Name(indexPosition){
var spread = SpreadsheetApp.getActiveSpreadsheet();
return spread.getSheets()[indexPosition].getSheetName();
}
答案 0 :(得分:0)
您可以从github尝试以下代码:
注意:只需将Docslist.getFolder
更改为DriveApp.getFoldersByName
。
function listFilesInFolder(name) {
var folder = DriveApp.getFoldersByName(name);
var contents = folder.getFiles();
var file, data;
var sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type"]);
for (var i = 0; i < contents.length; i++) {
file = contents[i];
if (file.getFileType() == "SPREADSHEET") {
continue;
}
data = [
file.getName(),
file.getDateCreated(),
file.getSize(),
file.getUrl(),
"https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
file.getDescription(),
file.getFileType().toString()
];
sheet.appendRow(data);
}
};
参数:
名称 字符串
- 要查找的文件的名称
返回
FileIterator -是属于以下子项的所有文件的集合 当前文件夹并具有给定名称
有关更多信息:
答案 1 :(得分:0)
这部分代码似乎不可靠
function listFilesInFolder(folderName)
{
var folder = DriveApp.getFoldersByName(folderName).next();
var contents = folder.getFiles();
//More codes
}
因此,此代码更加可靠,而无需手动获取/输入名称或ID
function listFilesInFolder()
{
thisFileId = SpreadsheetApp.getActive().getId();
var thisFile = DriveApp.getFileById(thisFileId);
var folder = thisFile.getParents().next();
//More codes
}
据我所知,有时一个文件是两个文件夹的子文件夹。在这种情况下,此代码将无法正常运行。