如何检查目录中是否存在多个文件

How to check if multiple file exists in a directory

我想检查一个目录中是否存在多个具有相同扩展名的文件,如果找到则执行操作。由于 file exists 只接受一个参数作为文件名,它似乎对我不起作用。

我尝试了以下代码。

set filenames [glob *.cpf]

      if {[file exists $filenames == 1 }  {
      file delete {*} [glob *.cpf]
} 

此代码没有删除目录中的文件,例如:a.cp、b.cpf,似乎跳过了这一步。 如果我遗漏了什么,请提出建议。

您可能需要检查接收到的文件名的长度并循环(如果需要)并根据需要删除。

set filenames [glob -nocomplain *.cpf]
# If length of 'filenames' is more than 1 means, multiple files avaialble
if {[llength $filenames]>1} {
    # Your file operations
    foreach fname $filenames    {
        # Loop through the file
    }
}

标志 -nocompain 将帮助我们防止在没有匹配模式时出现任何错误消息。

参考: glob