如何解决如何将文件保存到shourcut文件夹
我正在尝试将附件文件从 Gmail 保存到云端硬盘 我找到了一个代码示例 here 及其作品,但我需要将文件保存到共享文件夹中。在 MyDrive 上,我有一个共享文件夹的快捷方式。
例如:
var GDRIVE_FILE = '_sheredFolder_/one/$name
function processthread(thread,label){
var attachments = message.getAttachments();
for(var i=0; i<attachments.length; i++) {
var attachment = attachments[i];
var info = {
'name': attachment.getName(),'ext': getExtension(attachment.getName())}
var file = createFilename(GDRIVE_FILE,info);
saveAttachment(attachment,file);
}
解决方法
如果您的“我的云端硬盘”中有文件夹快捷方式,则该文件夹很可能为其他人所有。
为了能够将文件添加到其他人拥有的文件夹中,您应该将其作为“编辑器”与您共享。如果它以“查看者”的身份与您共享,您将无法将该文件添加到该文件夹中。
相关
,好吧,挖了一会儿,我修改了核心支持快捷方式或共享文件夹 我在初始路径的请求处添加 % 以识别它是共享文件夹还是本地文件夹
代码如下:
var GDRIVE_FILE = '%TheSharedFolder/FOLDER/$name';
function getOrMakeFolder(path) {
var folder = DriveApp.getRootFolder();
var names = path.split('/');
while(names.length) {
var name = names.shift();
if(name.charAt(0)==='%')
{
var first = name.substring(1,name.length)
var folders = DriveApp.searchFolders('sharedWithMe');
while (folders.hasNext()) {
var folder = folders.next();
if(folder.getName()===first)
{
Logger.log("folder name is : "+folder.getName()+" folderID: " + folder.getId())
folder = DriveApp.getFolderById(folder.getId())
}
}
continue;
}
if(name === '') continue;
var folders = folder.getFoldersByName(name);
if(folders.hasNext()) {
folder = folders.next();
} else {
folder = folder.createFolder(name);
}
}
return folder;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。