例如:
File f = new File("c:/example/123.txt");先判断它是否存在
if(f.exists())然后再看它是一个目录,还是一个文件
if(f.isDirectory())
else if(f.isFile())
文件属性
如果f.exists() && f.isFile() ,则可以查看文件的属性
f.canExecute() 是否可执行
f.canRead() 是否可读
f.canWrite() 是否可写
f.isHidden() 是否为隐藏文件
f.length() 文件的大小 (单位: byte)
f.lastModified() 最后修改时间 (返回毫秒值)
f.getName() 文件名 ( 例如, "abc.txt",不含路径)
文件操作
如果f.exists() && f.isFile() ,则可以执行以下操作
f.delete() 删除文件 (但不一定成功删除)
f.renameTo() 重命名 (相当于move)
f.setExecutable() 设置可执行属性
f.setReadable() 设置可读属性
f.setWritable() 设置可写属性
f.setLastModified() 更新最后修改时间
目录操作
如果d.exists() && d.isDirectory(), 则可以对此
目录执行以下操作
d.renameTo() 文件夹改名
d.delete() 删除文件夹 (但不一定能成功删除)
其他的可读、可写、可执行属性,要看文件系统本
身是否支持。。。
目录操作
设置过滤器,例如,只列出 *.mp4
FileFilter filter = new FileFilter(){
@Override
public boolean accept(File pathname)
{
if(pathname.getName().endsWith(".mp4"))
return true;
return false;
}
};
File[] children = d.listFiles(filter);
代码如下:
package my;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
public class HelloWorld
{
public static void test1() {
File f=new File("c:/111.txt");
if(f.exists()) {
if(f.isDirectory()) System.out.println("是个目录!");
else if(f.isFile()) System.out.println("是个文件!");
else System.out.println("不存在!");
}
long length=f.length();
System.out.println("文件大小为:"+length);
}
public static void test2() {
File d=new File("E:\\迅雷下载");
//创建过滤器
FileFilter filter=new FileFilter() {
@Override
public boolean accept(File pathname)
{
if(pathname.getName().endsWith(".iso"))
return true;
return false;
}
};
//列表
File[] chidren=d.listFiles(filter);
for(File child:chidren) {
System.out.println("got:"+child);
}
}
public static void test3() {
File d1=new File("c:/example/aaa");
File d2=new File(d1,"../bbb");
//相对路径c:\example\aaa\..\bbb
File a1=d2.getAbsoluteFile();
System.out.println("a1:"+a1);
try {
//转换为标准路径:C:\example\bbb
File a2=d2.getCanonicalFile();
System.out.println("a2:"+a2);
}catch(IOException e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
test1();
test2();
test3();
}
}
运行结果如下: