如何处理 groovy 中的 if-else?
how to handles if-else in groovy?
这里我在输入中传递 skipfolders 变量,如果 skipfolders 为真,那么它会打印父路径中的所有文件并跳过子文件夹。
否则 return 所有文件夹中的所有文件也包括子文件夹。这里我写了if-else条件。当我在 FileMaker 中执行此代码时
它执行时没有任何错误并显示 result.but if-else 条件在这里不起作用。
问题:
If-else 条件不起作用 here.it 打印来自 FTP 的所有文件包括 subfolders.skipfolders 条件不起作用。
在这个 return allFiles.join('\n') + '\n'+ allFolderFiles.join('\n')+ '\n' 直接打印并且 skipfolders 条件不起作用。
请帮助如何在 fileMaker groovy.
中正确使用 if-else 条件
start()
def start(){
boolean skipfolders = false
def store;
def ftpClient = new FTPClient()
ftpClient.connect(server)
// println(ftpClient.replyString)
ftpClient.login(user,pass)
ftpClient.enterLocalPassiveMode()
FTPFile[] fileslist = ftpClient.listFiles("/")
FTPFile[] folderfileslist = ftpClient.listFiles("/sample")
if(skipfolders == false){
def allFiles = [];
for(int i=0; i<fileslist.length; i++){
String file_name = fileslist[i].getName()
String file_timestamp = fileslist[i].getTimestamp().getTime()
String s = '|' + file_name+ '|' + '/' +file_name+'|' +file_timestamp
allFiles << s
}
def allFolderFiles = [];
for(int i=0; i<folderfileslist.length; i++){
String folderfile_name = folderfileslist[i].getName()
String folderfile_timestamp = folderfileslist[i].getTimestamp().getTime()
String s1 = '|' +folderfile_name+ '|' + '/sample' +'|'+folderfile_name+'|' +folderfile_timestamp
allFolderFiles << s1
}
ftpClient.disconnect()
return allFiles.join('\n') + '\n'+ allFolderFiles.join('\n')+ '\n'
}
else{
def allFiles = [];
for(int i=0; i<fileslist.length; i++){
String file_name = fileslist[i].getName()
String file_timestamp = fileslist[i].getTimestamp().getTime()
String s = '|' + file_name+ '|' + '/' +file_name+'|' +file_timestamp
allFiles << s
}
ftpClient.disconnect()
return allFiles.enter code herejoin('\n')
}
}
enter code here
if anybody having idea please let me know thanks.
对于字符串值,您比较的方式是首选,对于布尔值,您也可以在您的代码中执行以下操作 if..else 打开和关闭似乎不匹配,请检查。
boolean skipfolders = false
if(!skipfolders){ // this directly checks the true and false conditions
// do your stuff here on skipfolders = false
}else {
// do your stuff here on skipfolders = true
}
如果我对问题的理解正确,您想将 skipfolders 变量设置为参数。
如实声明:
boolean skipfolders = false;
因此用户 daggett 在问题评论中提到的 else 永远不会达到。
如果您改为这样做:
start(true) or start(false)
def start(boolean input){
boolean skipfolders = input;
...
}
然后你可以根据你的输入到达else语句。
这里我在输入中传递 skipfolders 变量,如果 skipfolders 为真,那么它会打印父路径中的所有文件并跳过子文件夹。 否则 return 所有文件夹中的所有文件也包括子文件夹。这里我写了if-else条件。当我在 FileMaker 中执行此代码时 它执行时没有任何错误并显示 result.but if-else 条件在这里不起作用。
问题:
If-else 条件不起作用 here.it 打印来自 FTP 的所有文件包括 subfolders.skipfolders 条件不起作用。 在这个 return allFiles.join('\n') + '\n'+ allFolderFiles.join('\n')+ '\n' 直接打印并且 skipfolders 条件不起作用。 请帮助如何在 fileMaker groovy.
中正确使用 if-else 条件start()
def start(){
boolean skipfolders = false
def store;
def ftpClient = new FTPClient()
ftpClient.connect(server)
// println(ftpClient.replyString)
ftpClient.login(user,pass)
ftpClient.enterLocalPassiveMode()
FTPFile[] fileslist = ftpClient.listFiles("/")
FTPFile[] folderfileslist = ftpClient.listFiles("/sample")
if(skipfolders == false){
def allFiles = [];
for(int i=0; i<fileslist.length; i++){
String file_name = fileslist[i].getName()
String file_timestamp = fileslist[i].getTimestamp().getTime()
String s = '|' + file_name+ '|' + '/' +file_name+'|' +file_timestamp
allFiles << s
}
def allFolderFiles = [];
for(int i=0; i<folderfileslist.length; i++){
String folderfile_name = folderfileslist[i].getName()
String folderfile_timestamp = folderfileslist[i].getTimestamp().getTime()
String s1 = '|' +folderfile_name+ '|' + '/sample' +'|'+folderfile_name+'|' +folderfile_timestamp
allFolderFiles << s1
}
ftpClient.disconnect()
return allFiles.join('\n') + '\n'+ allFolderFiles.join('\n')+ '\n'
}
else{
def allFiles = [];
for(int i=0; i<fileslist.length; i++){
String file_name = fileslist[i].getName()
String file_timestamp = fileslist[i].getTimestamp().getTime()
String s = '|' + file_name+ '|' + '/' +file_name+'|' +file_timestamp
allFiles << s
}
ftpClient.disconnect()
return allFiles.enter code herejoin('\n')
}
}
enter code here
if anybody having idea please let me know thanks.
对于字符串值,您比较的方式是首选,对于布尔值,您也可以在您的代码中执行以下操作 if..else 打开和关闭似乎不匹配,请检查。
boolean skipfolders = false
if(!skipfolders){ // this directly checks the true and false conditions
// do your stuff here on skipfolders = false
}else {
// do your stuff here on skipfolders = true
}
如果我对问题的理解正确,您想将 skipfolders 变量设置为参数。
如实声明:
boolean skipfolders = false;
因此用户 daggett 在问题评论中提到的 else 永远不会达到。
如果您改为这样做:
start(true) or start(false)
def start(boolean input){
boolean skipfolders = input;
...
}
然后你可以根据你的输入到达else语句。