我正在编写一个通用函数来检查变量是否包含文件或目录。所以我提出了一个想法,使用布尔返回类型函数来检查它。像这样的东西:
function boolean checkFileOrDirectory(File myFile){
// Assume file already exist
if(myFile.isDirectory()){
//myFile is a directory
return true;
} else {
//myFile is a file
return false;
}
}
我想知道这个功能的准确性。如果有人能告诉我是否有任何类型的文件类型不属于isFile()或isDirectory(),我真的很感激?
答案 0 :(得分:2)
"文件"可能像符号链接。文件和文件符号链接之间的区别是否重要取决于您的应用程序。
使用布尔来表示"是某种东西或其他东西"是一个坏主意,因为它不清楚是什么" true"或"假"的意思。
即使你记得那个"真的"意味着"是一个目录"," false"逻辑上意味着"不是一个目录" ...所以读者想知道"嗯,我知道它不是一个目录,但是它"
你问这个问题的事实证明了这一点。
请考虑使用枚举:
enum Kind { DIRECTORY, FILE }
这不仅仅是自我记录(你会有代码和#34这样的代码;如果这是一个文件/ else,如果这是一个目录"),它将来可以添加其他类型