android的文件操作.(未整理完成),android的文件操作。(未整理完成)

SD卡下的文件操作:

1、判断SD卡是否插入

Environment.getExternalStorageState().equals(

android.os.Environment.MEDIA_MOUNTED);

2、获得sd卡根目录:

File skRoot = Environment.getExternalStorageDirectory();

私有目录下的文件操作:

1、获得私有根目录:

File fileRoot = Context.getFilesDir()+"//";

还未整理

文件夹或文件夹操作:

1、确定或获得文件夹和文件路径

a、获得文件或文件夹的绝对路径和相对路径。区别

String path = File.getPath();//相对

String path = File.getAbsoultePath();//绝对

b 、获得文件或文件夹的父目录

String parentPath = File.getParent();

c、获得文件或文件夹的名称:

2、建立文件或文件夹

File.mkDir();//建立文件夹

File.createNewFile();//建立文件

3、判断是文件或文件夹

4、列出文件夹下的所有文件和文件夹名

5、修改文件夹和文件名

6、删除文件夹或文件

packageotheri.common;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.OutputStream;

importotheri.io.Input;

importotheri.io.Output;

importandroid.content.Context;

importandroid.os.Environment;

publicclassFileHelper {

privateContext context;

privateString SDPATH;

privateString FILESPATH;

publicFileHelper(Context context) {

this.context = context;

SDPATH = Environment.getExternalStorageDirectory().getPath() +"//";

FILESPATH =this.context.getFilesDir().getPath() +"//";

}

/**

* 在SD卡上创建文件

*

* @throws IOException

*/

publicFile creatSDFile(String fileName)throwsIOException {

File file =newFile(SDPATH + fileName);

file.createNewFile();

returnfile;

}

/**

* 删除SD卡上的文件

*

* @param fileName

*/

publicbooleandelSDFile(String fileName) {

File file =newFile(SDPATH + fileName);

if(file ==null|| !file.exists() || file.isDirectory())

returnfalse;

file.delete();

returntrue;

}

/**

* 在SD卡上创建目录

*

* @param dirName

*/

publicFile creatSDDir(String dirName) {

File dir =newFile(SDPATH + dirName);

dir.mkdir();

returndir;

}

/**

* 删除SD卡上的目录

*

* @param dirName

*/

publicbooleandelSDDir(String dirName) {

File dir =newFile(SDPATH + dirName);

returndelDir(dir);

}

/**

* 修改SD卡上的文件或目录名

*

* @param fileName

*/

publicbooleanrenameSDFile(String oldfileName, String newFileName) {

File oleFile =newFile(SDPATH + oldfileName);

File newFile =newFile(SDPATH + newFileName);

returnoleFile.renameTo(newFile);

}

/**

* 拷贝SD卡上的单个文件

*

* @param path

* @throws IOException

*/

publicbooleancopySDFileTo(String srcFileName, String destFileName)

throwsIOException {

File srcFile =newFile(SDPATH + srcFileName);

File destFile =newFile(SDPATH + destFileName);

returncopyFileTo(srcFile, destFile);

}

/**

* 拷贝SD卡上指定目录的所有文件

*

* @param srcDirName

* @param destDirName

* @return

* @throws IOException

*/

publicbooleancopySDFilesTo(String srcDirName, String destDirName)

throwsIOException {

File srcDir =newFile(SDPATH + srcDirName);

File destDir =newFile(SDPATH + destDirName);

returncopyFilesTo(srcDir, destDir);

}

/**

* 移动SD卡上的单个文件

*

* @param srcFileName

* @param destFileName

* @return

* @throws IOException

*/

publicbooleanmoveSDFileTo(String srcFileName, String destFileName)

throwsIOException {

File srcFile =newFile(SDPATH + srcFileName);

File destFile =newFile(SDPATH + destFileName);

returnmoveFileTo(srcFile, destFile);

}

/**

* 移动SD卡上的指定目录的所有文件

*

* @param srcDirName

* @param destDirName

* @return

* @throws IOException

*/

publicbooleanmoveSDFilesTo(String srcDirName, String destDirName)

throwsIOException {

File srcDir =newFile(SDPATH + srcDirName);

File destDir =newFile(SDPATH + destDirName);

returnmoveFilesTo(srcDir, destDir);

}

/*

* 将文件写入sd卡。如:writeSDFile("test.txt");

*/

publicOutput writeSDFile(String fileName)throwsIOException {

File file =newFile(SDPATH + fileName);

FileOutputStream fos =newFileOutputStream(file);

returnnewOutput(fos);

}

/*

* 在原有文件上继续写文件。如:appendSDFile("test.txt");

*/

publicOutput appendSDFile(String fileName)throwsIOException {

File file =newFile(SDPATH + fileName);

FileOutputStream fos =newFileOutputStream(file,true);

returnnewOutput(fos);

}

/*

* 从SD卡读取文件。如:readSDFile("test.txt");

*/

publicInput readSDFile(String fileName)throwsIOException {

File file =newFile(SDPATH + fileName);

FileInputStream fis =newFileInputStream(file);

returnnewInput(fis);

}

/**

* 建立私有文件

*

* @param fileName

* @return

* @throws IOException

*/

publicFile creatDataFile(String fileName)throwsIOException {

File file =newFile(FILESPATH + fileName);

file.createNewFile();

returnfile;

}

/**

* 建立私有目录

*

* @param dirName

* @return

*/

publicFile creatDataDir(String dirName) {

File dir =newFile(FILESPATH + dirName);

dir.mkdir();

returndir;

}

/**

* 删除私有文件

*

* @param fileName

* @return

*/

publicbooleandelDataFile(String fileName) {

File file =newFile(FILESPATH + fileName);

returndelFile(file);

}

/**

* 删除私有目录

*

* @param dirName

* @return

*/

publicbooleandelDataDir(String dirName) {

File file =newFile(FILESPATH + dirName);

returndelDir(file);

}

/**

* 更改私有文件名

*

* @param oldName

* @param newName

* @return

*/

publicbooleanrenameDataFile(String oldName, String newName) {

File oldFile =newFile(FILESPATH + oldName);

File newFile =newFile(FILESPATH + newName);

returnoldFile.renameTo(newFile);

}

/**

* 在私有目录下进行文件复制

*

* @param srcFileName

*            : 包含路径及文件名

* @param destFileName

* @return

* @throws IOException

*/

publicbooleancopyDataFileTo(String srcFileName, String destFileName)

throwsIOException {

File srcFile =newFile(FILESPATH + srcFileName);

File destFile =newFile(FILESPATH + destFileName);

returncopyFileTo(srcFile, destFile);

}

/**

* 复制私有目录里指定目录的所有文件

*

* @param srcDirName

* @param destDirName

* @return

* @throws IOException

*/

publicbooleancopyDataFilesTo(String srcDirName, String destDirName)

throwsIOException {

File srcDir =newFile(FILESPATH + srcDirName);

File destDir =newFile(FILESPATH + destDirName);

returncopyFilesTo(srcDir, destDir);

}

/**

* 移动私有目录下的单个文件

*

* @param srcFileName

* @param destFileName

* @return

* @throws IOException

*/

publicbooleanmoveDataFileTo(String srcFileName, String destFileName)

throwsIOException {

File srcFile =newFile(FILESPATH + srcFileName);

File destFile =newFile(FILESPATH + destFileName);

returnmoveFileTo(srcFile, destFile);

}

/**

* 移动私有目录下的指定目录下的所有文件

*

* @param srcDirName

* @param destDirName

* @return

* @throws IOException

*/

publicbooleanmoveDataFilesTo(String srcDirName, String destDirName)

throwsIOException {

File srcDir =newFile(FILESPATH + srcDirName);

File destDir =newFile(FILESPATH + destDirName);

returnmoveFilesTo(srcDir, destDir);

}

/*

* 将文件写入应用私有的files目录。如:writeFile("test.txt");

*/

publicOutput wirteFile(String fileName)throwsIOException {

OutputStream os = context.openFileOutput(fileName,

Context.MODE_WORLD_WRITEABLE);

returnnewOutput(os);

}

/*

* 在原有文件上继续写文件。如:appendFile("test.txt");

*/

publicOutput appendFile(String fileName)throwsIOException {

OutputStream os = context.openFileOutput(fileName, Context.MODE_APPEND);

returnnewOutput(os);

}

/*

* 从应用的私有目录files读取文件。如:readFile("test.txt");

*/

publicInput readFile(String fileName)throwsIOException {

InputStream is = context.openFileInput(fileName);

returnnewInput(is);

}

/**********************************************************************************************************/

/*********************************************************************************************************/

*/

/**

* 删除一个文件

*

* @param file

* @return

*/

publicbooleandelFile(File file) {

if(file.isDirectory())

returnfalse;

returnfile.delete();

}

/**

* 删除一个目录(可以是非空目录)

*

* @param dir

*/

publicbooleandelDir(File dir) {

if(dir ==null|| !dir.exists() || dir.isFile()) {

returnfalse;

}

for(File file : dir.listFiles()) {

if(file.isFile()) {

file.delete();

}elseif(file.isDirectory()) {

delDir(file);// 递归

}

}

dir.delete();

returntrue;

}

/**

* 拷贝一个文件,srcFile源文件,destFile目标文件

*

* @param path

* @throws IOException

*/

publicbooleancopyFileTo(File srcFile, File destFile)throwsIOException {

if(srcFile.isDirectory() || destFile.isDirectory())

returnfalse;// 判断是否是文件

FileInputStream fis =newFileInputStream(srcFile);

FileOutputStream fos =newFileOutputStream(destFile);

intreadLen =0;

byte[] buf =newbyte[1024];

while((readLen = fis.read(buf)) != -1) {

fos.write(buf,0, readLen);

}

fos.flush();

fos.close();

fis.close();

returntrue;

}

/**

* 拷贝目录下的所有文件到指定目录

*

* @param srcDir

* @param destDir

* @return

* @throws IOException

*/

publicbooleancopyFilesTo(File srcDir, File destDir)throwsIOException {

if(!srcDir.isDirectory() || !destDir.isDirectory())

returnfalse;// 判断是否是目录

if(!destDir.exists())

returnfalse;// 判断目标目录是否存在

File[] srcFiles = srcDir.listFiles();

for(inti =0; i 

if(srcFiles[i].isFile()) {

// 获得目标文件

File destFile =newFile(destDir.getPath() +"//"

+ srcFiles[i].getName());

copyFileTo(srcFiles[i], destFile);

}elseif(srcFiles[i].isDirectory()) {

File theDestDir =newFile(destDir.getPath() +"//"

+ srcFiles[i].getName());

copyFilesTo(srcFiles[i], theDestDir);

}

}

returntrue;

}

/**

* 移动一个文件

*

* @param srcFile

* @param destFile

* @return

* @throws IOException

*/

publicbooleanmoveFileTo(File srcFile, File destFile)throwsIOException {

booleaniscopy = copyFileTo(srcFile, destFile);

if(!iscopy)

returnfalse;

delFile(srcFile);

returntrue;

}

/**

* 移动目录下的所有文件到指定目录

*

* @param srcDir

* @param destDir

* @return

* @throws IOException

*/

publicbooleanmoveFilesTo(File srcDir, File destDir)throwsIOException {

if(!srcDir.isDirectory() || !destDir.isDirectory()) {

returnfalse;

}

File[] srcDirFiles = srcDir.listFiles();

for(inti =0; i 

if(srcDirFiles[i].isFile()) {

File oneDestFile =newFile(destDir.getPath() +"//"

+ srcDirFiles[i].getName());

moveFileTo(srcDirFiles[i], oneDestFile);

delFile(srcDirFiles[i]);

}elseif(srcDirFiles[i].isDirectory()) {

File oneDestFile =newFile(destDir.getPath() +"//"

+ srcDirFiles[i].getName());

moveFilesTo(srcDirFiles[i], oneDestFile);

delDir(srcDirFiles[i]);

}

}

returntrue;

}

}

getPath与getAbsoultePath的区别:

getAbsolutePath():返回抽象路径名的绝对路径名字符串。

publicstaticvoidtest1(){

File file1 =newFile(".//test1.txt");

File file2 =newFile("D://workspace//test//test1.txt");

System.out.println("-----默认相对路径:取得路径不同------");

System.out.println(file1.getPath());

System.out.println(file1.getAbsolutePath());

System.out.println("-----默认绝对路径:取得路径相同------");

System.out.println(file2.getPath());

System.out.println(file2.getAbsolutePath());

}

-----默认相对路径:取得路径不同------

./test1.txt

D:/workspace/test/./test1.txt

-----默认绝对路径:取得路径相同------

D:/workspace/test/test1.txt

D:/workspace/test/test1.txt

----------------------------------------------------

publicstaticvoidtest2()throwsException{

File file =newFile("..//src//test1.txt");

System.out.println(file.getAbsolutePath());

System.out.println(file.getCanonicalPath());

}

D:/workspace/test/../src/test1.txt

D:/workspace/src/test1.txt

--------------------------------------------

publicstaticvoidtest3()throwsException{

File file =newFile("D://Text.txt");

System.out.println(file.getCanonicalPath());

(1),确定D盘下没有Text.txt这个文件,直接执行这段代码,得到的结果是:

D:/Text.txt注意这里试大写的Text.txt

(2)在D盘下建立一个文件,名叫text.txt,再次执行代码,得到结果

D:/text.txt同样的代码得到不同的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值