說我有這樣的代碼:我如何知道這個變量是否是一個文件句柄?
function doFileStuff(){
var file = "";
try {
file = fileOpen(filePath);
// do stuff with file
}
finally {
fileClose(file);
}
}
如果fileOpen()
進程失敗,fileClose()
調用會報錯。我需要做的就是這種事情(僞)的:
if (isFile(file)){
fileClose(file);
}
我知道我可以測試,如果文件是一個空字符串也可以,這在這裏對我的作品,但它不測試什麼,我應該是測試:是否file
是文件句柄。我可以檢查對象的Java類,但是這對我來說聽起來有點難以理解,應該有CFML方法。
應該像isFile()
這樣的東西,不應該在那裏?在文檔中找不到像這樣的內容。
任何想法/提示?我在我的調查中對我的blog進行了更深入的研究。這裏太羅嗦了。
亞當,你可以使用的文件處理程序返回的關鍵之一,以測試它是否是 「真正的」。也許像if(file.size> 0){//做你的事}?我的感覺是,如果file.size返回一個正值,它可能是一個真正的文件。也許這對你的需求太基本了?只是一個想法! – 2012-07-27 17:18:52
我很想看到CF中會出現isFile()方法。如果他們有isImageFile和isPDFFile,我們當然可以有isFile :)! – 2012-07-27 17:20:07
我不認爲你正在尋找的選項存在。雖然我同意應該有* *。在java中遇到類似的問題,就是如何在'finally'子句中關閉文件流而不添加醜陋的try/catch。 Apache的方法是創建一個[closeQuietly](http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils.html#closeQuietly%28java.io.InputStream%29)方法。我比「IsFile」方法更適合那種想法。至少在這個*特定*場景中。 – Leigh 2012-07-27 17:31:19