2015-11-03 116 views
1

我想檢查一個目錄中是否存在多個具有相同擴展名的文件,如果發現執行該操作。由於文件存在只接受一個參數作爲文件名,它似乎沒有爲我工作。如何檢查一個目錄中是否存在多個文件

我試過下面的代碼。

set filenames [glob *.cpf] 

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

此代碼並未刪除目錄中的文件,例如:a.cp,b.cpf,似乎忽略了此步驟。 請建議如果我失去了一些東西。

+0

恕我直言,你不需要'文件exists'檢查本身,如'返回的名稱glob'卻都出現在給定目錄的實際文件列表中按給定模式。 – Dinesh

+0

你好Dinesh, 我需要先檢查文件是否存在,然後執行文件刪除,其他方式運行代碼的主體(這裏沒有粘貼)。 –

回答

1

您可能必須檢查所接收到的文件名的長度和環通(如果u想要的),並刪除按照你的需要。

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

+0

謝謝Dinesh,它適合我... –

相關問題