Java方法isFile()
和isDirectory()
仅在文件或目录实际存在时才起作用(如果它不存在)?
这些方法有替代方法吗?
示例:
File f=new File(var);
现在,var
是从运行时生成的任何内容,因此我不知道它是否是文件,您实际上可以在没有文件或路径存在的情况下初始化对象。我想得到的是:即使文件不存在,我如何确定文件是否真的是一个文件?如果我确定是否有扩展我可能会告诉,但在Linux中我认为有些文件没有文件扩展名,我需要在所有平台上工作。
答案 0 :(得分:8)
如果该文件不存在,那么它既不是普通文件也不是目录...如果它实际上不存在,那么询问它是什么类型的文件真的没有意义。
如果您创建文件,那么您可以决定它是什么类型;如果你没有创建文件,那么它就不存在了。
答案 1 :(得分:4)
http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html#isFile%28%29
返回: true 当且仅当此抽象路径名表示的文件存在并且是普通文件时;否则是假的......
因此,另外检查exists()是不必要的。
最终输入: 只需删除文件扩展名的概念。它真的只是文件名。它仅用作操作系统上其他程序的元数据,以便某些文件可以与某些程序关联/打开。
答案 2 :(得分:1)
调用exists()
方法以确定文件或目录是否存在,或调用getPath()
以获取File
对象指向的路径(无论该路径是否存在或不是)。
已针对问题添加的其他信息进行了更新。
答案 3 :(得分:0)
您可能想要检查var是否是表示有效路径的有效字符串。也许像if(var!= null&& var instanceof String&&((String)var).matches(“regex for filesystem,base system dependent”)){ //在这做点什么 }
然后你可以使用exists()方法来检查文件是否有效。