標籤:directory 目錄名 一個 布爾 python str last absolute 直接
建立:
createNewFile()在指定位置建立一個空檔案,成功就返回true,如果已存在就不建立,然後返回false。
mkdir() 在指定位置建立一個單級檔案夾。
mkdirs() 在指定位置建立一個多級檔案夾。
renameTo(File dest)如果目標檔案與源檔案是在同一個路徑下,那麼renameTo的作用是重新命名, 如果目標檔案與源檔案不是同一個路徑下,那麼renameTo的作用就是剪下,而且還不能操作檔案夾。
刪除:
delete() 刪除檔案或者一個空檔案夾,不能刪除非空檔案夾,馬上刪除檔案,返回一個布爾值。
deleteOnExit()jvm退出時刪除檔案或者檔案夾,用於刪除臨時檔案,無傳回值。
判斷:
exists() 檔案或檔案夾是否存在。
isFile() 是否是一個檔案,如果不存在,則始終為false。
isDirectory() 是否是一個目錄,如果不存在,則始終為false。
isHidden() 是否是一個隱藏的檔案或是否是隱藏的目錄。
isAbsolute() 測試此抽象路徑名是否為絕對路徑名。
boolean canExecute()判斷檔案是否可執行
boolean canRead()判斷檔案是否可讀
boolean canWrite() 判斷檔案是否可寫
擷取:
getName() 擷取檔案或檔案夾的名稱,不包含上級路徑。
getAbsolutePath()擷取檔案的絕對路徑,與檔案是否存在沒關係
length() 擷取檔案的大小(位元組數),如果檔案不存在則返回0,如果是檔案夾也返回0。
getParent() 返回此抽象路徑名父目錄的路徑名字串;如果此路徑名沒有指定父目錄,則返回null。
lastModified()擷取最後一次被修改的時間。
檔案夾相關:
static File[] listRoots()列出所有的根目錄(Window中就是所有系統的盤符)
list() 返回目錄下的檔案或者目錄名,包含隱藏檔案。對於檔案這樣操作會返回null。
listFiles() 返回目錄下的檔案或者目錄對象(File類執行個體),包含隱藏檔案。對於檔案這樣操作會返回null。
list(FilenameFilter filter)返回指定目前的目錄中符合過濾條件的子檔案或子目錄。對於檔案這樣操作會返回null。
listFiles(FilenameFilter filter)返回指定目前的目錄中符合過濾條件的子檔案或子目錄。對於檔案這樣操作會返回null。
********************執行個體********************
import java.io.File;
1.在指定位置建立檔案creatNewFile()
File myFile = new File("D:\\test.txt");
if(!myFile.exists){
myFile.mkdir();//建立檔案夾
myFile.creatNewFile();建立檔案
}
2.在指定位置建立檔案夾mkdir()
File myFile = new File("D:\\yxy");
if(!myFile.exists){
myFile.mkdir();//建立檔案夾
}
3.在指定位置建立一個多級檔案夾mkdirs()
File myFile = new File("D:/yxy");
if(!myFile.exists){
//如果父目錄存在,則直接在父目錄中建立子目錄;如果父目錄不存在,遞迴建立所有目錄
myFile.mkdirs();
}
4.使用遞迴遍曆目錄:
public class Test2 {
public static void main(String[] args) {
Myfile yxy=new Myfile();
yxy.yxyfile();
}
}
class Myfile{
File myFile = new File("D:/yxy");
File[] files=myFile.listFiles();
void yxyfile(){
for(File fd:files){
if(fd.isDirectory()){
System.out.println(fd);
files =fd.listFiles();//產生新的listFiles()
yxyfile();//使用遞迴
}else{
System.out.println(fd);
}
}
}
5.清空目錄下的所有檔案夾和檔案
①方法一:
public class Test2 {
public static void main(String[] args) {
Myfile yxy=new Myfile();
yxy.yxyfile();
}
}
class Myfile{
File myFile = new File("D:/yxy");
File[] files=myFile.listFiles();
void yxyfile(){
//第一個for迴圈用於刪除檔案
ArrayList<File> dirname=new ArrayList<File>();//用於儲存目錄
for(File fd:files){
if(fd.isDirectory()){
System.out.println(fd);
files =fd.listFiles();//產生新的listFiles()
dirname.add(fd);
yxyfile();//使用遞迴
}else{
System.out.println(fd);
fd.delete();//刪除所有的檔案
}
//刪除空目錄
for(File dir:dirname){
dir.delete();
}}}}
②方法二:
public class Test2 {
public static void main(String[] args) {
Myfile yxy=new Myfile();
yxy.yxyfile();
}
}
class Myfile{
File myFile = new File("D:/yxy");
File[] files=myFile.listFiles();
void yxyfile(){
//第一個for迴圈用於刪除檔案
for(File fd:files){
if(fd.isDirectory()){
System.out.println(fd);
files =fd.listFiles();//產生新的listFiles()
yxyfile();//使用遞迴
}else{
System.out.println(fd);
fd.delete();//刪除所有的檔案
}
//刪除空目錄
File[] dir=myFile.listFiles();//剩下的空檔案夾
for(int i=0;i<dir.length;i++){
dir[i].delete();
}}}}
③方法三(調用cmd,簡單):
public class Test1 {
public static void main(String[] args) {
try {
String cmd = "cmd.exe /c rd /s/q E:\\yxy";
Runtime.getRuntime().exec(cmd);
System.out.println("yes");
} catch (Exception e) {
System.out.println("Error");
} }}
注:/s代表刪除所有子目錄及子目錄下檔案,/q代表刪除時不需再次確認,
6.list()和listFiles()的區別
File file=new File("E:\\xxx");
String[] filename1=file.list();//返迴文件或目錄的名字
File[] filename2=file.listFiles();//返迴文件或目錄的完整路徑
File[] filename3=file.listRoots();//列出所有根目錄(Window中就是所有系統的盤符)
for(String name1:filename1){System.out.println(name1);}
for(File name2:filename2){System.out.println(name2);}
for(File name3:filename3){System.out.println(name3);}
輸出:
list():
python內建進位轉換方法.png
python的物件導向.png
建立檔案夾
listFiles():
E:\xxx\python內建進位轉換方法.png
E:\xxx\python的物件導向.png
E:\xxx\建立檔案夾
listRoots():
C:\
D:\
E:\
Z:\
7.renameTo(File dest)
注釋:如果目標檔案與源檔案是在同一個路徑下,那麼renameTo的作用是重新命名, 如果目標檔案與源檔案不是在同一個路徑下
,那麼renameTo的作用就是剪下,而且還不能操作檔案夾。
①重新命名:
File file=new File("E:\\xxx\\python的物件導向.png");
file.renameTo(new File("E:\\xxx\\py的物件導向.png"));
②移動檔案:
File file=new File("E:\\xxx\\python的物件導向.png");
file.renameTo(new File("D:\\python的物件導向.png"));
8.調用CMD命令移動整個檔案夾
try{
Runtime.getRuntime().exec("cmd.exe /c move E:\\xxx\\1 E:");
}catch(Exception e){
System.out.println("Error");
}
Java File類常用方法及執行個體