File类:
三个构造函数
1.File(string pathname);//pathname表示创建文件或者目录的路径
例File dir1=new File("G://dir1");//创建目录
if(!dir1.exists())
{
dir1.mkdir();//如果不存在则创建目录
}
例File file1=new File("G://test.txt");//创建文件
if(!file1.exists())
{
try{
file1.createNewFile();
}catch(IOException e)
{
e.printStackTrace();
}
}
2.File(File parent,String child);//参数parent表示根目录,child表示子路径
例:File dir2=new File(dir1,"dir2");//在dir1下创建目录dir2
if(!dir2.exists())
{
dir2.mkdirs();
}
File file1=new File(dir1,"test1.txt");//在目录dir1下创建文件test.txt
if(!file1.exists())
{
try{
file1.createNewFile();
}catch(IOException e)
{
e.printStackTrace();
}
}
File dir4=new File(dir1,"dir3//dir4");//在dir1下创建目录dir3,然后dir3下创建dir4
if(!dir4.exists())
{
dir4.mkdirs();
}
3.File(String parent,String child);//参数parent表示根目录,child表示子路径(同上)
4.File[] listFiles():返回当前目录下所有的子目录和文件的File对象
5.boolean exists(),判断文件或者目录是否存在
6.boolean createNewFile(); 如果文件不存在,则创建新的文件
7.boolean mkdir();创建由File对象表示的目录
8.boolean mkdirs();在文件系统创建有File对象表示的目录,如果该目录的父目录不存在的话,
则创建所有的父目录
9.boolean canRead(),判断是否有读的权限
10.boolean canWrite;判断是否有写的权限
11.boolean delete();删除对象File所有代表的文件或目录,如果目录下包含子目录或者文件则不允许
删除File对象所代表的目录
12.String getName(),返回File对象代表的文件或者目录的名称
13.String getParent(),返回File对象代表的文件或者目录的根目录,不包含当前目录,如果没有返回NULL
System.out.println(dir4.getParent()); 运行结果:G:/dir1/dir3
14.String getPath();返回File对象代表的文件或者目录的目录,包含当前目录
System.out.println(dir4.getPath()); 运行结果:G:/dir1/dir3/dir4
15.String getAbsolutePath();返回File对象代表的文件或者目录的绝对路径
System.out.println(dir4.getAbsolutePath()) 运行结果:G:/dir1/dir3/dir4
16.boolean isFile();判断File对象是否代表一个文件
17.booeanl isDirectory(),判断File对象是否代表一个目录
18.long lastModified(),返回File对象代表的文件或者目录最近一次被修改的时间
19.String[] lsit(),如果该File对象代表目录,则返回该目录下所有文件和目录的名字列表
20.boolean renameTo(File file)如果File对象代表文件,则将文件名改为file参数所表示的文件名
import java.io.*;
//impirt java.io.date;
public class UseFile {
public static void main(String[] args) {
// TODO Auto-generated method stub
File dir1=new File("G://dir1");
if(!dir1.exists())
{
dir1.mkdir();
}
File dir2=new File(dir1,"dir2");
if(!dir2.exists())
{
dir2.mkdirs();
}
File dir4=new File(dir1,"dir3//dir4");
if(!dir4.exists())
{
dir4.mkdirs();
}
File file1=new File(dir1,"test1.txt");
if(!file1.exists())
{
try{
file1.createNewFile();
}catch(IOException e)
{
e.printStackTrace();
}
}
File file=new File(dir2,"test.txt");
if(!file.exists())
{
try{
file.createNewFile();
}catch(IOException e)
{
e.printStackTrace();
}
}
//System.out.println(dir4);测试各种方法
//listDir(dir1);//打印子目录及其文件
//deleteDir(dir1);//删除目录及其文件
String[] lists=dir1.list();
//打印当前目录下包含的所有子目录和文件的名字
String info="目录"+dir1.getName()+"(";
for(int i=0;i<lists.length;i++)
{
info+=lists[i]+",";
}
info+=")";
System.out.println(info);
}
public static void listDir(File dir)
{
File[] lists=dir.listFiles();
//打印当前目录下包含的所有子目录和文件的名字
String info="目录"+dir.getName()+"(";
for(int i=0;i<lists.length;i++)
{
info+=lists[i].getName()+",";
}
info+=")";
System.out.println(info);
//递归打印出当前目录下所有子目录及其文件的详细信息
for(int i=0;i<lists.length;i++)
{
File f=lists[i];
if(f.isFile())
{
System.out.println("文件"+f.getName()+"canRead:"+f.canRead()+"canWrite:"
+f.canWrite()+"lastModified:"+f.lastModified());
}
else
{
listDir(f);
}
}
}
public static void deleteDir(File dir)
{
if(dir.isFile())//如果dir是文件则直接删除,返回即可
{
dir.delete();
return;
}
File[] lists=dir.listFiles();
for(int i=0;i<lists.length;i++)
{
deleteDir(lists[i]);//递归删除所有的子目录和文件
}
dir.delete();
}
}
Filel列的list()和listFiles()方法都可以返回当前Fiel对象代表的目录下所有子目录和文件的清单,如果仅希望满足某种条件下的子目录和文件清单,则可以用:File[] list(FilenameFilter filter)和File[] listFiles(FilenameFilter filter),filter为过滤条件,不过要实现接口中的方法
public interface FilenameFilter()
{
public boolean accept(File dir,String name)
}
例子:在UserFilenameFilter类中定义了一个匿名类其中放啊accept()的实现为:只有当currentFile对象代表文件,并且扩展名为“.txt”事才加入返回清单中;
ubilc void UserFIlenameFilter
{
public stacic void main(string[] args)
{
File dir1=new FIle("G://");
FIlenamaFIlter filter=new FilenameFilter
{
public boolean accept(File dir ,String name)
{
System.out.println("根路径"+dir.getPath()+"子路径"+name);
File currentFile=new File(dir,name);
if(currentFile.isFile()&&name.indexOf(".txt")!=-1)
{
return true;
}
else
{
return false;
}
}
}
string[] lists[]=dir1.list(filter);//利用filter来返回指定的目录和文件
for(int i=0;i<lists.length;i++)
{
System.out.println(lists[i]);
}
}
}