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]);
}
}
}