A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

请问通过File的length()方法能不能判断文件夹是否为空,例如:
File f = new File("D:\\");
if(f.length()>0)
{
    System.out.println("文件夹不为空");
}

4 个回复

倒序浏览
首先,必须理解File的含义 , 在传统的理解上(特别是unix/linux类操作系统中), 一切都可以理解为文件,包括普通文件,目录,字符设备,块设备,管道,套接字等,java中的File一般就保持了这种理解,也就是说,你说理解的普通文件和目录是不做区分的.
然后 根据该方法的注释:
  1. * @return  The length, in bytes, of the file denoted by this abstract
  2.      *          pathname, or <code>0L</code> if the file does not exist.  Some
  3.      *          operating systems may return <code>0L</code> for pathnames
  4.      *          denoting system-dependent entities such as devices or pipes.
复制代码

返回0除了该文件(包括目录)为空外,还表示文件不存在,该文件是设备文件或管道文件等情况.
回复 使用道具 举报
你这个length方法的作用理解错了,它不是判断文件大小的,它是用来判断文件名字的长度的

看看API说明:
length
public long length()返回由此抽象路径名表示的文件的长度。如果此路径名表示一个目录,则返回值是不确定的。

返回:
此抽象路径名表示的文件的长度,以字节为单位;如果文件不存在,则返回 0L。对于表示特定于系统的实体(比如设备或管道)的路径名,某些操作系统可能返回 0L。
回复 使用道具 举报
不是有isEmpty()
回复 使用道具 举报
不懂就看源码嘛  图片上写的很清楚了   length()是判断一个文件大小的   单位是字节  如果对象是目录 那么返回值不确定   如果文件不存在 则返回0L

QQ图片20150905223915.png (14.6 KB, 下载次数: 79)

QQ图片20150905223915.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马