目錄
-
- File的構造器
- 常用方法
-
- 檔案建立
- 檔案的删除
- 檔案判斷
- 檔案的擷取功能
- 擷取目錄的子檔案
- 遞歸查詢檔案夾的内部所有檔案
- 删除一個檔案夾下的所有檔案(不包括目錄)
- 删除一個檔案夾下的所有檔案(包括目錄)
File的構造器

在使用構造函數之後,這個File對象就存在了,你可以使用File.exists()來對其進行判斷,存在則傳回true。
Java使用介乎于UNIX和Windows的路徑方法,前斜線“/”可以正确解釋,而如果要使用反斜線“\”則需要進行轉義序列“\”,才能被解釋器正确解釋。
//都是正确的寫法
File file = new File("C:\\demo.xsd");
File file1 = new File("C:/demo.xsd");
很重要的一點就是,Java的File對象可以是檔案也可以是檔案夾。是以當你使用
File file=new File("/java");
傳回的是檔案夾,但是你在後面加一句
它就變成了一個txt檔案
常用方法
檔案建立
public static void main(String[] args) throws IOException {
File file = new File("E:/test.java");
boolean isSuccess = file.createNewFile();
System.out.println(isSuccess);
File file1 = new File("E:/我的目錄");
boolean isSuc = file1.mkdir();
System.out.println(isSuc);
File file2 = new File("E:/我的目錄/目錄1/目錄11");
boolean isSuc1 = file2.mkdirs();
System.out.println(isSuc1);
}
檔案的删除
public static void main(String[] args) throws IOException {
File file1 = new File("E:/我的目錄");
boolean isDeleteDir = file1.delete();
System.out.println(isDeleteDir);
}
檔案判斷
public static void main(String[] args) throws IOException {
File file = new File("E:/hello.java");
System.out.println("判斷檔案是否存在:" + file.exists());
System.out.println("判斷是否是檔案:" + file.isFile());
System.out.println("判斷是否是檔案夾:" + file.isDirectory());
System.out.println("判斷檔案是否是絕對路徑:" + file.isAbsolute());
System.out.println("判斷檔案是否可讀:" + file.canRead());
System.out.println("判斷檔案是否可寫:" + file.canWrite());
System.out.println("判斷檔案是否是隐藏:" + file.isHidden());
}
檔案的擷取功能
public static void main(String[] args) throws IOException {
File file = new File("E:/工作/java/課件/java SE/第1天初識Java SE/視訊/14.進制.avi");
String aPath = file.getAbsolutePath();
System.out.println(aPath);
String path = file.getPath();
System.out.println(path);
String name = file.getName();
System.out.println(name);
long length = file.length();
System.out.println(length);
long time = file.lastModified();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(time);
String timeStr = sdf.format(date);
System.out.println(timeStr);
}
擷取目錄的子檔案
public static void main(String[] args) throws IOException {
//擷取可用的檔案系統根
File[] files = File.listRoots();
File[] var5 = files;
int var4 = files.length;
File file;
for(int var3 = 0; var3 < var4; ++var3) {
file = var5[var3];
System.out.println(file);
}
System.out.println("------------------------------------");
file = new File("E:/eclipse/eclipse/workspace/poker");
File[] files1 = file.listFiles();
File[] var7 = files1;
int var6 = files1.length;
for(int var12 = 0; var12 < var6; ++var12) {
File file2 = var7[var12];
System.out.println(file2);
}
System.out.println("---------------------------------------");
String[] fileNames = file.list();
String[] var8 = fileNames;
int var14 = fileNames.length;
for(var6 = 0; var6 < var14; ++var6) {
String fileName = var8[var6];
System.out.println(fileName);
}
}
遞歸查詢檔案夾的内部所有檔案
public static void main(String[] args) throws IOException {
File file = new File("E:\\工作\\java\\課件\\java SE\\第1天初識Java SE");
printFile(file);
}
public static void printFile(File file) {
if (file.isDirectory()) {
if (file.exists()) {
++level;
File[] files = file.listFiles();
File[] var5 = files;
int var4 = files.length;
for(int var3 = 0; var3 < var4; ++var3) {
File file1 = var5[var3];
for(int i = 0; i < level; ++i) {
System.out.print("\t");
}
String name = file1.getName();
System.out.println(name);
if (file1.isDirectory()) {
printFile(file1);
}
}
--level;
}
}
}
删除一個檔案夾下的所有檔案(不包括目錄)
public static void main(String[] args) throws IOException {
File file = new File("aa");
deleteFile(file);
}
public static void deleteFile(File file) {
if (file.isDirectory()) {
if (file.exists()) {
File[] files = file.listFiles();
File[] var5 = files;
int var4 = files.length;
for(int var3 = 0; var3 < var4; ++var3) {
File file1 = var5[var3];
if (file1.isFile()) {
file1.delete();
} else {
deleteFile(file1);
}
}
}
}
}
删除一個檔案夾下的所有檔案(包括目錄)
public static void main(String[] args) throws IOException {
File file = new File("aa");
deleteFile(file);
}
public static void deleteFile(File file) {
if (file.isDirectory()) {
if (file.exists()) {
File[] files = file.listFiles();
File[] var5 = files;
int var4 = files.length;
for(int var3 = 0; var3 < var4; ++var3) {
File file1 = var5[var3];
if (file1.isFile()) {
file1.delete();
} else {
deleteFile(file1);
file1.delete();
}
}
}
}
}