2013-05-04 34 views
0

给定绝对路径作为变量字符串路径名,如何使用Java类文件执行以下操作?据我所知,答案在括号中,请确认。给定一个路径名,如何判断对象是使用Java File API的目录还是文件?

  1. 获取文件/目录的大小? (我不确定)

  2. 测试绝对路径是否会导致存在的东西? (File.exists(pathname),如果它存在则返回一个布尔值true,否则布尔值为false)

  3. 看看这是不是这个文件或目录? (File.isFile(pathname),如果路径名导致文件,则返回一个布尔值true,否则返回false。file.isDirectory(pathname),如果路径名导向目录,则返回布尔值true,否则返回false)

  4. 查看修改的最后日期? (File.lastModified(路径),它返回我已经有转换为特定的日期

一个相关但不同的问题的方法很长的数字:有没有东西是一个“文件”,像.doc,.jpeg,.mpeg,.mp3,.xml,。*会使isFile和isDirectory测试失败吗?如果是这样,如何区分空文件夹和文件夹,同时使isFile和isDirectory测试?我在问,因为在File类文档中,它为isFile声明了以下内容:测试此抽象路径名表示的文件是否是普通文件。如果文件不是目录,则它是正常的,并且此外还满足其他与系统相关的标准。由Java应用程序创建的任何非目录文件都将保证为普通文件。

+0

对于文件或目录请检查此http://www.java-examples.com/determine-file-or-目录 – exexzian 2013-05-04 05:59:38

+0

“系统相关标准”是指像UNIX的套接字,命名管道或特殊文件(的/ dev/null的)。表示写在磁盘上的数据的任何文件基本上都是普通文件。 – 2013-05-04 06:02:30

回答

3
File f = new File(path); 
// Get size of file (not a directory though) 
f.length(); 
// Check if file exists 
f.exists(); 
// Check if file is directory 
f.isDirectory(); 
// Check if file is file 
f.isFile(); 
// Last modified date 
f.lastModified(); 

参考:JavaDoc for java.io.File

如果你想有一个目录的大小,你必须在你遍历你要计算的尺寸目录将这些方法结合起来,或者你可以使用第三像FileUtilsApache Commons IO它有一个sizeOf方法,显然也处理目录的大小。如果存在

0
  • 测试:file.exists()
  • 测试,如果一个正常的文件:file.isFike()
  • 东西我们既不是 “文件” 不是一个目录:一个符号链接
0

有什么那是一个“文件”,就像.doc,.jpeg,.mpeg,.mp3,.xml,。*那样会使isFile和isDirectory测试都失败?

不。那些都是普通文件。如果它是一个文件,它将通过isFile测试。

不是“普通文件”或目录的东西就是设备文件和命名管道文件。 java.io.File无法准确区分这些...或符号链接。

如果您希望能够完成特定于操作系统的任务,请参阅Java 7的java.nio.file包,特别是Files类。

相关问题