myFile.isFile()或myFile.isDirectory()是否有可能的第三种类型的函数?

时间:2018-06-07 05:56:28

标签: java java-io

我正在编写一个通用函数来检查变量是否包含文件或目录。所以我提出了一个想法,使用布尔返回类型函数来检查它。像这样的东西:

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(),我真的很感激?

1 个答案:

答案 0 :(得分:2)

"文件"可能像符号链接。文件和文件符号链接之间的区别是否重要取决于您的应用程序。

使用布尔来表示"是某种东西或其他东西"是一个坏主意,因为它不清楚是什么" true"或"假"的意思。

即使你记得那个"真的"意味着"是一个目录"," false"逻辑上意味着"不是一个目录" ...所以读者想知道"嗯,我知道它不是一个目录,但它"

你问这个问题的事实证明了这一点。

请考虑使用枚举:

enum Kind { DIRECTORY, FILE }

这不仅仅是自我记录(你会有代码和#34这样的代码;如果这是一个文件/ else,如果这是一个目录"),它将来可以添加其他类型