File文件的處理

在操作手機存儲之前得先加權限(6.0之後還得動態申請權限:)

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

File的一些基本方法

boolean  file.mkdir()//創建目錄
boolean  file.mkdirs() //創建多級目錄
boolean file.createNewFile()//創建一個新文件夾
boolean file.exists() //文件是否存在
boolean file.isFile() //是否是文件
boolean file.isDirectory() //是否是目錄
boolean file.isHidden()   //是否隱藏(windows上可以設置某個文件是否隱藏)
boolean file.isAbsolute() //是否爲絕對路徑
boolean file.canRead()  //是否可讀
boolean file.canWrite() //是否可寫
boolean file.canExecute()  //是否可執行

String file.getName() //獲取文件的名字,只是名字,沒有路徑

String file.getParent() //獲取父目錄的絕對路徑,返回值是一個字符串。如果文件有父目錄,那麼返回父目錄的絕對路徑,(比如:`E:\cat`) , 如果文件本身就在磁盤的根目錄,那麼返回磁盤的路徑,(比如:`E:\`)。

File file.getParentFile() //獲取父文件,返回值是一個File對象。

long time = file.lastModified() ; //返回文件最後一次修改的時間
Date dt = new Date(time);

boolean renameTo(File file) //文件命名

long file.length() //返回文件的大小,單位字節

boolean file.delete() //刪除文件

String[] file.list() //獲取該目錄下的所有的文件的名字。如果`file`爲文件,返回值爲`null`,在使用時記得判空;但是如果`file`爲目錄,那麼返回這個目錄下所有文件的名字,只是名字,不含路徑;如果`file`是一個空目錄,返回一個長度爲0的數組;從上面的結果可以看出,`list()` 方法,只是對`file`爲目錄時有效,當`file`爲一個文件的時候,該方法毫無意義。

File[] file.listFiles() //獲取該目錄下的所有的文件。如果`file`爲文件,返回值爲`null`,在使用時記得判空;但是如果`file`爲目錄,那麼返回這個目錄下所有的文件 ;如果`file`是一個空目錄,返回一個長度爲0的數組;從上面的結果可以看出,`listFiles()` 方法,只是對`file`爲目錄時有效,當`file`爲一個文件的時候,該方法毫無意義。

判斷SD卡是否可用

public static boolean isSDCardEnable(){
        return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
    }

刪除文件

	//file不能爲空,文件不存在返回true,文件存在並且成功刪除返回true
    public static boolean deleteFile(File file) {
        return file != null && (!file.exists() || file.isFile() && file.delete());
    }

刪除目錄及目錄下所有文件

    //刪除目錄及目錄下的所有文件
    public static boolean deleteDir(File dir) {
        if (dir == null) {
            return false;
        }
        // 目錄不存在返回true
        if (!dir.exists()) {
            return true;
        }
        // 不是目錄返回false
        if (!dir.isDirectory()) {
            return false;
        }
        // 現在文件存在且是文件夾
        File[] files = dir.listFiles();
        for (File file : files) {
            if (file.isFile()) {
                if (!deleteFile(file)) {
                    return false;
                }
            } else if (file.isDirectory()) {
                if (!deleteDir(file)) {
                    return false;
                }
            }
        }
        return dir.delete();
    }

刪除指定目錄下的所有文件

public static boolean deleteFilesInDir(File dir){
        if(dir == null){
            return false;
        }
        if(!dir.exists()){
            return true;
        }
        if(!dir.isDirectory()){
            return false;
        }
        File[] files = dir.listFiles();
        if(files !=null && files.length!=0){
            for(File file:files){
                //如果是文件
                if(file.isFile()){
                    if(!deleteFile(file)){
                        return false;
                    }
                }
                //如果是文件夾
                else if(file.isDirectory()){
                    if(!deleteDir(file)){
                        return false;
                    }
                }
            }
        }
        return true;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章