天天看點

Java讀取sd卡_FileUtils【擷取SD卡根目錄、讀寫檔案、移動、複制、删除檔案、擷取檔案名、字尾名操作類】【不建議使用這個工具類】...

版權聲明:本文為HaiyuKing原創文章,轉載請注明出處!

前言

封裝了擷取SD卡根目錄路徑、以及對檔案讀寫、擷取檔案名等相關操作。

因為需要用到android.permission.READ_EXTERNAL_STORAGE權限,是以依賴《Android6.0運作時權限(基于RxPermission開源庫)》。

效果圖

Java讀取sd卡_FileUtils【擷取SD卡根目錄、讀寫檔案、移動、複制、删除檔案、擷取檔案名、字尾名操作類】【不建議使用這個工具類】...

代碼分析

較常用的應該是擷取SD卡根目錄路徑、擷取檔案名、建立目錄操作。

使用步驟

一、項目組織結構圖

Java讀取sd卡_FileUtils【擷取SD卡根目錄、讀寫檔案、移動、複制、删除檔案、擷取檔案名、字尾名操作類】【不建議使用這個工具類】...

注意事項:

1、  導入類檔案後需要change包名以及重新import R檔案路徑

2、  Values目錄下的檔案(strings.xml、dimens.xml、colors.xml等),如果項目中存在,則複制裡面的内容,不要整個覆寫

二、導入步驟

将fileutil包複制到項目中

Java讀取sd卡_FileUtils【擷取SD卡根目錄、讀寫檔案、移動、複制、删除檔案、擷取檔案名、字尾名操作類】【不建議使用這個工具類】...

建立一個包含以下代碼的MyApplication.java(自定義的Application子類)

packagecom.why.project.fileutilsdemo;importandroid.app.Application;importandroid.content.Context;

public class MyApplication extendsApplication {

private staticContext mAppContext;

@Overridepublic voidonCreate() {super.onCreate();

mAppContext=getApplicationContext();

}

public staticContext getAppContext()

{returnmAppContext;

}

}

在AndroidManifest.xml中聲明這個MyApplication并添權重限

添加運作時權限的處理(本demo中采用的是修改targetSDKVersion=22)

在build.gradle中導入第三方庫:org.apache.httpcomponents:httpcore:4.4.4

apply plugin: 'com.android.application'

android {

compileSdkVersion 25

buildToolsVersion "25.0.3"

defaultConfig {

applicationId "com.why.project.fileutilsdemo"

minSdkVersion 15

targetSdkVersion 22

versionCode 1

versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {

release {

minifyEnabled true

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

dependencies {

//FileUtils

compile 'org.apache.httpcomponents:httpcore:4.4.4'

compile fileTree(dir: 'libs', include: ['*.jar'])

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {

exclude group: 'com.android.support', module: 'support-annotations'

})

compile 'com.android.support:appcompat-v7:25.3.1'

testCompile 'junit:junit:4.12'

}

對于Eclipse開發環境,在libs目錄下導入httpcore-4.4.4.jar包即可。

三、使用方法

private voidinitEvents() {//擷取SD卡路徑

tv_getSdPath.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {

String sdPath=FileUtils.getSDPath();

Log.w(TAG,"sdPath="+sdPath);

}

});//建立目錄

tv_makeFolders.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {

String fileForderPath= FileUtils.getSDPath() + File.separator + "fileUtilDir" +File.separator;

Log.w(TAG,"fileForderPath="+fileForderPath);boolean makeFolderState =FileUtils.makeFolders(fileForderPath);

Log.w(TAG,"makeFolderState="+makeFolderState);

}

});//将字元串寫入檔案

tv_writeFile.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {

String filePath= FileUtils.getSDPath() + File.separator + "fileUtilDir" + File.separator + "file.txt";

Log.w(TAG,"filePath="+filePath);

String content= "将字元串内容添加到文本檔案中";boolean writeFileState =FileUtils.writeFile(filePath,content);

Log.w(TAG,"writeFileState="+writeFileState);

}

});//讀取檔案

tv_readFile.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {

String filePath= FileUtils.getSDPath() + File.separator + "fileUtilDir" + File.separator + "file.txt";

Log.w(TAG,"filePath="+filePath);

String readContent=FileUtils.readFile(filePath);

Log.w(TAG,"readContent="+readContent);

}

});//擷取檔案名(不帶字尾)

tv_getFileNameWithoutExtension.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {

String filePath= FileUtils.getSDPath() + File.separator + "fileUtilDir" + File.separator + "file.txt";

Log.w(TAG,"filePath="+filePath);

String fileNameWithoutExtension=FileUtils.getFileNameWithoutExtension(filePath);

Log.w(TAG,"fileNameWithoutExtension="+fileNameWithoutExtension);

}

});//擷取檔案名(帶字尾)

tv_getFileName.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {

String filePath= FileUtils.getSDPath() + File.separator + "fileUtilDir" + File.separator + "file.txt";

Log.w(TAG,"filePath="+filePath);

String fileName=FileUtils.getFileName(filePath);

Log.w(TAG,"fileName="+fileName);

}

});//擷取字尾名

tv_getFileExtension.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {

String filePath= FileUtils.getSDPath() + File.separator + "fileUtilDir" + File.separator + "file.txt";

Log.w(TAG,"filePath="+filePath);

String fileExtension=FileUtils.getFileExtension(filePath);

Log.w(TAG,"fileExtension="+fileExtension);

}

});//擷取檔案大小

tv_getFileSize.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {

String filePath= FileUtils.getSDPath() + File.separator + "fileUtilDir" + File.separator + "file.txt";

Log.w(TAG,"filePath="+filePath);long fileSize =FileUtils.getFileSize(filePath);

Log.w(TAG,"fileSize="+fileSize);

}

});//删除檔案

tv_deleteFileRecursion.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {

String filePath= FileUtils.getSDPath() + File.separator + "fileUtilDir" + File.separator + "file.txt";

Log.w(TAG,"filePath="+filePath);FileUtils.deleteFileRecursion(filePath);}

});//擷取APP的檔案路徑

tv_getAppFilePath.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {

String appFilePath=FileUtils.getAppFilePath();

Log.w(TAG,"appFilePath="+appFilePath);

}

});

}

Java讀取sd卡_FileUtils【擷取SD卡根目錄、讀寫檔案、移動、複制、删除檔案、擷取檔案名、字尾名操作類】【不建議使用這個工具類】...

混淆配置

#=====================httpcore=====================

#android Studio環境中不需要,eclipse環境中需要

#-libraryjars libs/httpcore-4.4.4.jar

-dontwarn org.apache.http.**

-keep class org.apache.http.**{*;}

參考資料

項目demo下載下傳位址