gpt4 book ai didi

google-apps-script - 文件存在的 Google Script 测试

转载 作者:行者123 更新时间:2023-12-04 14:31:27 25 4
gpt4 key购买 nike

我不敢相信没有一种简单的方法可以做到这一点,但我到处寻找可行的解决方案,但没有成功。

我正在 Google Sheet 中运行 Google 脚本,并且我正处于代码中我想将电子表格保存为新文件名的位置。在我这样做之前,我想检查一下是否已经存在一个(因为我不想覆盖它)。

无论文件夹或文件是否存在,我用来测试的下面的代码都会返回“文件存在”。

与往常一样,非常感谢任何帮助:-)

这是我的测试代码。

function testscriptforfileexistance() {
filecheck = checkfileexists("UnderDevelopment",'20160919 Weekly Roster v1.0.gsheet');

if (filecheck.filefound = true) {
Browser.msgBox("file found") ;
} else {
Browser.msgBox("File not found");
}
}


function checkfileexists(foldername,fn) {
var destFolder = DriveApp.getFoldersByName(foldername);
filefound=false;
var destFileId = DriveApp.getFilesByName(fn);
//if hasnext returns false, presumably it doesn't exist
if (!destFileId.hasNext) {
Logger.log ("Found");
filefound = true;
// and as a second test, if the length is zero the file doesn't exist
if (!destFileId[0]) {
Logger.log ("zero length");
filefound=false;
}
}
return {filefound:filefound};
}

干杯
...史蒂夫

最佳答案

这有点令人困惑,因为有很多 hasNext如果您正在检查特定文件夹中的文件夹/文件或文件是否存在,则涉及。我通过反复试验得到了这个工作。

hasNext()

  • Determines whether calling next() will return an item.

Return

  • Booleantrue if next() will return an item; false if not

首先这里有一些相关的 SO 问题:
  • How do I check if a file exists (by name) in Google Drive?
  • Google Apps Script: Check upload file exist or empty

  • 这是一个示例代码:
    function checkFile(filename){
    var results;
    var haBDs = DriveApp.getFilesByName(filename)
    //Does not exist
    if(!haBDs.hasNext()){
    results = haBDs.hasNext();
    }
    //Does exist
    else{
    results = haBDs.hasNext();
    }
    Logger.log(results)
    return results;
    }

    function myFunction() {
    var nomeDB = "FILE_NAME";
    if(checkFile(nomeDB) == true){
    Logger.log("File Found")
    }else{
    Logger.log("File Not Found")
    }

    }
    检查您的代码,尝试更改 !destFileId.hasNext!destFileId.hasNext()附加信息,如果您要检查文件是否存在于特定文件夹中,您将使用相同的流程,但您必须检查该文件夹是否也存在(可选)。
    这是一个片段:
    function checkFile2(filename,foldername){

    var folder = DriveApp.getFoldersByName(foldername);

    Logger.log(folder.hasNext());

    //Folder does not exist
    if(!folder.hasNext()){

    Logger.log("No Folder Found");

    }
    //Folder does exist
    else{
    Logger.log("Folder Found")
    var file = folder.next().getFilesByName(filename);
    if(!file.hasNext()){
    Logger.log("No File Found");
    }
    else{
    Logger.log("File Found");
    }
    }

    }
    希望这可以帮助!

    关于google-apps-script - 文件存在的 Google Script 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39685232/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com