android的文件操作要有权限:

[xhtml] view plain copy
  1. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">uses-permission>  

 

SD卡下的文件操作:

1、判断SD卡是否插入

[java] view plain copy
  1. Environment.getExternalStorageState().equals(  
  2.         android.os.Environment.MEDIA_MOUNTED);  

2、获得sd卡根目录:

[java] view plain copy
  1. File skRoot = Environment.getExternalStorageDirectory();  

私有目录下的文件操作:

1、获得私有根目录:

[java] view plain copy
  1. File fileRoot = Context.getFilesDir()+"//";  

还未整理

 

文件夹或文件夹操作:

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

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

[java] view plain copy
  1. String path = File.getPath();//相对  
  2. String path = File.getAbsoultePath();//绝对  

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

[java] view plain copy
  1. String parentPath = File.getParent();  

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

[java] view plain copy
  1. String Name = File.getName();  

2、建立文件或文件夹

[java] view plain copy
  1. File.mkDir(); //建立文件夹  
  2. File.createNewFile();//建立文件  

3、判断是文件或文件夹

[java] view plain copy
  1. File.isDirectory()  

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

[java] view plain copy
  1. File[] files = File.listFiles();  

5、修改文件夹和文件名

[java] view plain copy
  1. File.renameTo(dest);  

6、删除文件夹或文件

[java] view plain copy
  1. File.delete();  

 

 

[java] view plain copy
  1. package otheri.common;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.FileOutputStream;  
  6. import java.io.IOException;  
  7. import java.io.InputStream;  
  8. import java.io.OutputStream;  
  9.   
  10. import otheri.io.Input;  
  11. import otheri.io.Output;  
  12. import android.content.Context;  
  13. import android.os.Environment;  
  14.   
  15. public class FileHelper {  
  16.     private Context context;  
  17.     private String SDPATH;  
  18.     private String FILESPATH;  
  19.   
  20.     public FileHelper(Context context) {  
  21.         this.context = context;  
  22.         SDPATH = Environment.getExternalStorageDirectory().getPath() + "//";  
  23.         FILESPATH = this.context.getFilesDir().getPath() + "//";  
  24.     }  
  25.   
  26.     /** 
  27.      * 在SD卡上创建文件 
  28.      *  
  29.      * @throws IOException 
  30.      */  
  31.     public File creatSDFile(String fileName) throws IOException {  
  32.         File file = new File(SDPATH + fileName);  
  33.         file.createNewFile();  
  34.         return file;  
  35.     }  
  36.   
  37.     /** 
  38.      * 删除SD卡上的文件 
  39.      *  
  40.      * @param fileName 
  41.      */  
  42.     public boolean delSDFile(String fileName) {  
  43.         File file = new File(SDPATH + fileName);  
  44.         if (file == null || !file.exists() || file.isDirectory())  
  45.             return false;  
  46.         file.delete();  
  47.         return true;  
  48.     }  
  49.   
  50.     /** 
  51.      * 在SD卡上创建目录 
  52.      *  
  53.      * @param dirName 
  54.      */  
  55.     public File creatSDDir(String dirName) {  
  56.         File dir = new File(SDPATH + dirName);  
  57.         dir.mkdir();  
  58.         return dir;  
  59.     }  
  60.   
  61.     /** 
  62.      * 删除SD卡上的目录 
  63.      *  
  64.      * @param dirName 
  65.      */  
  66.     public boolean delSDDir(String dirName) {  
  67.         File dir = new File(SDPATH + dirName);  
  68.         return delDir(dir);  
  69.     }  
  70.   
  71.     /** 
  72.      * 修改SD卡上的文件或目录名 
  73.      *  
  74.      * @param fileName 
  75.      */  
  76.     public boolean renameSDFile(String oldfileName, String newFileName) {  
  77.         File oleFile = new File(SDPATH + oldfileName);  
  78.         File newFile = new File(SDPATH + newFileName);  
  79.         return oleFile.renameTo(newFile);  
  80.     }  
  81.   
  82.     /** 
  83.      * 拷贝SD卡上的单个文件 
  84.      *  
  85.      * @param path 
  86.      * @throws IOException 
  87.      */  
  88.     public boolean copySDFileTo(String srcFileName, String destFileName)  
  89.             throws IOException {  
  90.         File srcFile = new File(SDPATH + srcFileName);  
  91.         File destFile = new File(SDPATH + destFileName);  
  92.         return copyFileTo(srcFile, destFile);  
  93.     }  
  94.   
  95.     /** 
  96.      * 拷贝SD卡上指定目录的所有文件 
  97.      *  
  98.      * @param srcDirName 
  99.      * @param destDirName 
  100.      * @return 
  101.      * @throws IOException 
  102.      */  
  103.     public boolean copySDFilesTo(String srcDirName, String destDirName)  
  104.             throws IOException {  
  105.         File srcDir = new File(SDPATH + srcDirName);  
  106.         File destDir = new File(SDPATH + destDirName);  
  107.         return copyFilesTo(srcDir, destDir);  
  108.     }  
  109.   
  110.     /** 
  111.      * 移动SD卡上的单个文件 
  112.      *  
  113.      * @param srcFileName 
  114.      * @param destFileName 
  115.      * @return 
  116.      * @throws IOException 
  117.      */  
  118.     public boolean moveSDFileTo(String srcFileName, String destFileName)  
  119.             throws IOException {  
  120.         File srcFile = new File(SDPATH + srcFileName);  
  121.         File destFile = new File(SDPATH + destFileName);  
  122.         return moveFileTo(srcFile, destFile);  
  123.     }  
  124.   
  125.     /** 
  126.      * 移动SD卡上的指定目录的所有文件 
  127.      *  
  128.      * @param srcDirName 
  129.      * @param destDirName 
  130.      * @return 
  131.      * @throws IOException 
  132.      */  
  133.     public boolean moveSDFilesTo(String srcDirName, String destDirName)  
  134.             throws IOException {  
  135.         File srcDir = new File(SDPATH + srcDirName);  
  136.         File destDir = new File(SDPATH + destDirName);  
  137.         return moveFilesTo(srcDir, destDir);  
  138.     }  
  139.   
  140.   
  141.     /* 
  142.      * 将文件写入sd卡。如:writeSDFile("test.txt"); 
  143.      */  
  144.     public Output writeSDFile(String fileName) throws IOException {  
  145.         File file = new File(SDPATH + fileName);  
  146.         FileOutputStream fos = new FileOutputStream(file);  
  147.         return new Output(fos);  
  148.     }  
  149.   
  150.     /* 
  151.      * 在原有文件上继续写文件。如:appendSDFile("test.txt"); 
  152.      */  
  153.     public Output appendSDFile(String fileName) throws IOException {  
  154.         File file = new File(SDPATH + fileName);  
  155.         FileOutputStream fos = new FileOutputStream(file, true);  
  156.         return new Output(fos);  
  157.     }  
  158.   
  159.     /* 
  160.      * 从SD卡读取文件。如:readSDFile("test.txt"); 
  161.      */  
  162.     public Input readSDFile(String fileName) throws IOException {  
  163.         File file = new File(SDPATH + fileName);  
  164.         FileInputStream fis = new FileInputStream(file);  
  165.         return new Input(fis);  
  166.     }  
  167.       
  168.       
  169.     /** 
  170.      * 建立私有文件 
  171.      *  
  172.      * @param fileName 
  173.      * @return 
  174.      * @throws IOException 
  175.      */  
  176.     public File creatDataFile(String fileName) throws IOException {  
  177.         File file = new File(FILESPATH + fileName);  
  178.         file.createNewFile();  
  179.         return file;  
  180.     }  
  181.   
  182.     /** 
  183.      * 建立私有目录 
  184.      *  
  185.      * @param dirName 
  186.      * @return 
  187.      */  
  188.     public File creatDataDir(String dirName) {  
  189.         File dir = new File(FILESPATH + dirName);  
  190.         dir.mkdir();  
  191.         return dir;  
  192.     }  
  193.   
  194.     /** 
  195.      * 删除私有文件 
  196.      *  
  197.      * @param fileName 
  198.      * @return 
  199.      */  
  200.     public boolean delDataFile(String fileName) {  
  201.         File file = new File(FILESPATH + fileName);  
  202.         return delFile(file);  
  203.     }  
  204.   
  205.     /** 
  206.      * 删除私有目录 
  207.      *  
  208.      * @param dirName 
  209.      * @return 
  210.      */  
  211.     public boolean delDataDir(String dirName) {  
  212.         File file = new File(FILESPATH + dirName);  
  213.         return delDir(file);  
  214.     }  
  215.   
  216.     /** 
  217.      * 更改私有文件名 
  218.      *  
  219.      * @param oldName 
  220.      * @param newName 
  221.      * @return 
  222.      */  
  223.     public boolean renameDataFile(String oldName, String newName) {  
  224.         File oldFile = new File(FILESPATH + oldName);  
  225.         File newFile = new File(FILESPATH + newName);  
  226.         return oldFile.renameTo(newFile);  
  227.     }  
  228.   
  229.     /** 
  230.      * 在私有目录下进行文件复制 
  231.      *  
  232.      * @param srcFileName 
  233.      *            : 包含路径及文件名 
  234.      * @param destFileName 
  235.      * @return 
  236.      * @throws IOException 
  237.      */  
  238.     public boolean copyDataFileTo(String srcFileName, String destFileName)  
  239.             throws IOException {  
  240.         File srcFile = new File(FILESPATH + srcFileName);  
  241.         File destFile = new File(FILESPATH + destFileName);  
  242.         return copyFileTo(srcFile, destFile);  
  243.     }  
  244.   
  245.     /** 
  246.      * 复制私有目录里指定目录的所有文件 
  247.      *  
  248.      * @param srcDirName 
  249.      * @param destDirName 
  250.      * @return 
  251.      * @throws IOException 
  252.      */  
  253.     public boolean copyDataFilesTo(String srcDirName, String destDirName)  
  254.             throws IOException {  
  255.         File srcDir = new File(FILESPATH + srcDirName);  
  256.         File destDir = new File(FILESPATH + destDirName);  
  257.         return copyFilesTo(srcDir, destDir);  
  258.     }  
  259.   
  260.     /** 
  261.      * 移动私有目录下的单个文件 
  262.      *  
  263.      * @param srcFileName 
  264.      * @param destFileName 
  265.      * @return 
  266.      * @throws IOException 
  267.      */  
  268.     public boolean moveDataFileTo(String srcFileName, String destFileName)  
  269.             throws IOException {  
  270.         File srcFile = new File(FILESPATH + srcFileName);  
  271.         File destFile = new File(FILESPATH + destFileName);  
  272.         return moveFileTo(srcFile, destFile);  
  273.     }  
  274.   
  275.     /** 
  276.      * 移动私有目录下的指定目录下的所有文件 
  277.      *  
  278.      * @param srcDirName 
  279.      * @param destDirName 
  280.      * @return 
  281.      * @throws IOException 
  282.      */  
  283.     public boolean moveDataFilesTo(String srcDirName, String destDirName)  
  284.             throws IOException {  
  285.         File srcDir = new File(FILESPATH + srcDirName);  
  286.         File destDir = new File(FILESPATH + destDirName);  
  287.         return moveFilesTo(srcDir, destDir);  
  288.     }  
  289.   
  290.     /* 
  291.      * 将文件写入应用私有的files目录。如:writeFile("test.txt"); 
  292.      */  
  293.     public Output wirteFile(String fileName) throws IOException {  
  294.         OutputStream os = context.openFileOutput(fileName,  
  295.                 Context.MODE_WORLD_WRITEABLE);  
  296.         return new Output(os);  
  297.     }  
  298.   
  299.     /* 
  300.      * 在原有文件上继续写文件。如:appendFile("test.txt"); 
  301.      */  
  302.     public Output appendFile(String fileName) throws IOException {  
  303.         OutputStream os = context.openFileOutput(fileName, Context.MODE_APPEND);  
  304.         return new Output(os);  
  305.     }  
  306.   
  307.     /* 
  308.      * 从应用的私有目录files读取文件。如:readFile("test.txt"); 
  309.      */  
  310.     public Input readFile(String fileName) throws IOException {  
  311.         InputStream is = context.openFileInput(fileName);  
  312.         return new Input(is);  
  313.     }  
  314.       
  315.       
  316.       
  317.     /**********************************************************************************************************/  
  318.     /*********************************************************************************************************/  
  319.      */  
  320.     /** 
  321.      * 删除一个文件 
  322.      *  
  323.      * @param file 
  324.      * @return 
  325.      */  
  326.     public boolean delFile(File file) {  
  327.         if (file.isDirectory())  
  328.             return false;  
  329.         return file.delete();  
  330.     }  
  331.   
  332.     /** 
  333.      * 删除一个目录(可以是非空目录) 
  334.      *  
  335.      * @param dir 
  336.      */  
  337.     public boolean delDir(File dir) {  
  338.         if (dir == null || !dir.exists() || dir.isFile()) {  
  339.             return false;  
  340.         }  
  341.         for (File file : dir.listFiles()) {  
  342.             if (file.isFile()) {  
  343.                 file.delete();  
  344.             } else if (file.isDirectory()) {  
  345.                 delDir(file);// 递归  
  346.             }  
  347.         }  
  348.         dir.delete();  
  349.         return true;  
  350.     }  
  351.   
  352.     /** 
  353.      * 拷贝一个文件,srcFile源文件,destFile目标文件 
  354.      *  
  355.      * @param path 
  356.      * @throws IOException 
  357.      */  
  358.     public boolean copyFileTo(File srcFile, File destFile) throws IOException {  
  359.         if (srcFile.isDirectory() || destFile.isDirectory())  
  360.             return false;// 判断是否是文件  
  361.         FileInputStream fis = new FileInputStream(srcFile);  
  362.         FileOutputStream fos = new FileOutputStream(destFile);  
  363.         int readLen = 0;  
  364.         byte[] buf = new byte[1024];  
  365.         while ((readLen = fis.read(buf)) != -1) {  
  366.             fos.write(buf, 0, readLen);  
  367.         }  
  368.         fos.flush();  
  369.         fos.close();  
  370.         fis.close();  
  371.         return true;  
  372.     }  
  373.   
  374.     /** 
  375.      * 拷贝目录下的所有文件到指定目录 
  376.      *  
  377.      * @param srcDir 
  378.      * @param destDir 
  379.      * @return 
  380.      * @throws IOException 
  381.      */  
  382.     public boolean copyFilesTo(File srcDir, File destDir) throws IOException {  
  383.         if (!srcDir.isDirectory() || !destDir.isDirectory())  
  384.             return false;// 判断是否是目录  
  385.         if (!destDir.exists())  
  386.             return false;// 判断目标目录是否存在  
  387.         File[] srcFiles = srcDir.listFiles();  
  388.         for (int i = 0; i < srcFiles.length; i++) {  
  389.             if (srcFiles[i].isFile()) {  
  390.                 // 获得目标文件  
  391.                 File destFile = new File(destDir.getPath() + "//"  
  392.                         + srcFiles[i].getName());  
  393.                 copyFileTo(srcFiles[i], destFile);  
  394.             } else if (srcFiles[i].isDirectory()) {  
  395.                 File theDestDir = new File(destDir.getPath() + "//"  
  396.                         + srcFiles[i].getName());  
  397.                 copyFilesTo(srcFiles[i], theDestDir);  
  398.             }  
  399.         }  
  400.         return true;  
  401.     }  
  402.   
  403.     /** 
  404.      * 移动一个文件 
  405.      *  
  406.      * @param srcFile 
  407.      * @param destFile 
  408.      * @return 
  409.      * @throws IOException 
  410.      */  
  411.     public boolean moveFileTo(File srcFile, File destFile) throws IOException {  
  412.         boolean iscopy = copyFileTo(srcFile, destFile);  
  413.         if (!iscopy)  
  414.             return false;  
  415.         delFile(srcFile);  
  416.         return true;  
  417.     }  
  418.   
  419.     /** 
  420.      * 移动目录下的所有文件到指定目录 
  421.      *  
  422.      * @param srcDir 
  423.      * @param destDir 
  424.      * @return 
  425.      * @throws IOException 
  426.      */  
  427.     public boolean moveFilesTo(File srcDir, File destDir) throws IOException {  
  428.         if (!srcDir.isDirectory() || !destDir.isDirectory()) {  
  429.             return false;  
  430.         }  
  431.         File[] srcDirFiles = srcDir.listFiles();  
  432.         for (int i = 0; i < srcDirFiles.length; i++) {  
  433.             if (srcDirFiles[i].isFile()) {  
  434.                 File oneDestFile = new File(destDir.getPath() + "//"  
  435.                         + srcDirFiles[i].getName());  
  436.                 moveFileTo(srcDirFiles[i], oneDestFile);  
  437.                 delFile(srcDirFiles[i]);  
  438.             } else if (srcDirFiles[i].isDirectory()) {  
  439.                 File oneDestFile = new File(destDir.getPath() + "//"  
  440.                         + srcDirFiles[i].getName());  
  441.                 moveFilesTo(srcDirFiles[i], oneDestFile);  
  442.                 delDir(srcDirFiles[i]);  
  443.             }  
  444.   
  445.         }  
  446.         return true;  
  447.     }  
  448. }  
  

 

getPath与getAbsoultePath的区别:

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

[java] view plain copy
  1. public static void test1(){  
  2.         File file1 = new File(".//test1.txt");  
  3.         File file2 = new File("D://workspace//test//test1.txt");  
  4.         System.out.println("-----默认相对路径:取得路径不同------");  
  5.         System.out.println(file1.getPath());  
  6.         System.out.println(file1.getAbsolutePath());  
  7.         System.out.println("-----默认绝对路径:取得路径相同------");  
  8.         System.out.println(file2.getPath());  
  9.         System.out.println(file2.getAbsolutePath());  
  10.           
  11.     }  
  12.   
  13. -----默认相对路径:取得路径不同------  
  14. ./test1.txt  
  15. D:/workspace/test/./test1.txt  
  16. -----默认绝对路径:取得路径相同------  
  17. D:/workspace/test/test1.txt  
  18. D:/workspace/test/test1.txt  
  19.   
  20. ----------------------------------------------------  
  21.   
  22. public static void test2() throws Exception{  
  23.         File file = new File("..//src//test1.txt");  
  24.         System.out.println(file.getAbsolutePath());  
  25.         System.out.println(file.getCanonicalPath());  
  26.     }  
  27. D:/workspace/test/../src/test1.txt  
  28. D:/workspace/src/test1.txt  
  29.   
  30. --------------------------------------------  
  31. public static void test3() throws Exception{  
  32.         File file = new File("D://Text.txt");  
  33.         System.out.println(file.getCanonicalPath());  

(1),确定D盘下没有Text.txt这个文件,直接执行这段代码,得到的结果是:
D:/Text.txt注意这里试大写的Text.txt
(2)在D盘下建立一个文件,名叫text.txt,再次执行代码,得到结果
D:/text.txt同样的代码得到不同的结果。

转自: http://blog.csdn.net/fenghome/article/details/5668598

更多相关文章

  1. eclipse ADT在线安装 https://dl-ssl.google.com/android/eclips
  2. android测试器
  3. Mac与Android文件传输工具 Android(安卓)File Transfer
  4. android linux 基础知识总结
  5. android 读取SQLite android could not open the database in re
  6. android 打开各种文件(setDataAndType)
  7. Android清单文件属性大全
  8. android studio 使用cmake支持C++出现无法sync cmake error的问
  9. Android学习笔记之mainfest文件中android属性

随机推荐

  1. android 3D 游戏实现之综合实例(初步)
  2. 解决Debug certificate expired问题
  3. 面试题总结(2018.7.26开始,持续更新中)
  4. AndroidStudio使用笔记
  5. Android,App 常用图标尺寸规范
  6. Android(安卓)Material Design :LinearLay
  7. Android查看数据库工具sqlitemanager
  8. Menu
  9. MyEclipse本地搭建Android环境
  10. android混淆