android的文件、目录操作(五)

本文深入探讨了Android中文件和目录的操作方法,包括文件写入、追加、读取、删除、目录删除、文件复制、目录复制、文件移动、目录移动等功能。
android的文件、目录操作(五) 

android的文件、目录操作(五)  

2011-03-18 18:05:37|  分类: 工作学习 |  标签: |字号 订阅


  1.     /* 
  2.      * 将文件写入应用私有的files目录。如:writeFile("test.txt"); 
  3.      */  
  4.     public Output wirteFile(String fileName) throws IOException {  
  5.         OutputStream os = context.openFileOutput(fileName,  
  6.                 Context.MODE_WORLD_WRITEABLE);  
  7.         return new Output(os);  
  8.     }  
  9.   
  10.     /* 
  11.      * 在原有文件上继续写文件。如:appendFile("test.txt"); 
  12.      */  
  13.     public Output appendFile(String fileName) throws IOException {  
  14.         OutputStream os = context.openFileOutput(fileName, Context.MODE_APPEND);  
  15.         return new Output(os);  
  16.     }  
  17.   
  18.     /* 
  19.      * 从应用的私有目录files读取文件。如:readFile("test.txt"); 
  20.      */  
  21.     public Input readFile(String fileName) throws IOException {  
  22.         InputStream is = context.openFileInput(fileName);  
  23.         return new Input(is);  
  24.     }  
  25.       
  26.       
  27.       
  28.     /**********************************************************************************************************/  
  29.     /*********************************************************************************************************/  
  30.      */  
  31.     /** 
  32.      * 删除一个文件 
  33.      *  
  34.      * @param file 
  35.      * @return 
  36.      */  
  37.     public boolean delFile(File file) {  
  38.         if (file.isDirectory())  
  39.             return false;  
  40.         return file.delete();  
  41.     }  
  42.   
  43.     /** 
  44.      * 删除一个目录(可以是非空目录) 
  45.      *  
  46.      * @param dir 
  47.      */  
  48.     public boolean delDir(File dir) {  
  49.         if (dir == null || !dir.exists() || dir.isFile()) {  
  50.             return false;  
  51.         }  
  52.         for (File file : dir.listFiles()) {  
  53.             if (file.isFile()) {  
  54.                 file.delete();  
  55.             } else if (file.isDirectory()) {  
  56.                 delDir(file);// 递归  
  57.             }  
  58.         }  
  59.         dir.delete();  
  60.         return true;  
  61.     }  
  62.   
  63.     /** 
  64.      * 拷贝一个文件,srcFile源文件,destFile目标文件 
  65.      *  
  66.      * @param path 
  67.      * @throws IOException 
  68.      */  
  69.     public boolean copyFileTo(File srcFile, File destFile) throws IOException {  
  70.         if (srcFile.isDirectory() || destFile.isDirectory())  
  71.             return false;// 判断是否是文件  
  72.         FileInputStream fis = new FileInputStream(srcFile);  
  73.         FileOutputStream fos = new FileOutputStream(destFile);  
  74.         int readLen = 0;  
  75.         byte[] buf = new byte[1024];  
  76.         while ((readLen = fis.read(buf)) != -1) {  
  77.             fos.write(buf, 0, readLen);  
  78.         }  
  79.         fos.flush();  
  80.         fos.close();  
  81.         fis.close();  
  82.         return true;  
  83.     }  
  84.   
  85.     /** 
  86.      * 拷贝目录下的所有文件到指定目录 
  87.      *  
  88.      * @param srcDir 
  89.      * @param destDir 
  90.      * @return 
  91.      * @throws IOException 
  92.      */  
  93.     public boolean copyFilesTo(File srcDir, File destDir) throws IOException {  
  94.         if (!srcDir.isDirectory() || !destDir.isDirectory())  
  95.             return false;// 判断是否是目录  
  96.         if (!destDir.exists())  
  97.             return false;// 判断目标目录是否存在  
  98.         File[] srcFiles = srcDir.listFiles();  
  99.         for (int i = 0; i < srcFiles.length; i++) {  
  100.             if (srcFiles[i].isFile()) {  
  101.                 // 获得目标文件  
  102.                 File destFile = new File(destDir.getPath() + "\\"  
  103.                         + srcFiles[i].getName());  
  104.                 copyFileTo(srcFiles[i], destFile);  
  105.             } else if (srcFiles[i].isDirectory()) {  
  106.                 File theDestDir = new File(destDir.getPath() + "\\"  
  107.                         + srcFiles[i].getName());  
  108.                 copyFilesTo(srcFiles[i], theDestDir);  
  109.             }  
  110.         }  
  111.         return true;  
  112.     }  
  113.   
  114.     /** 
  115.      * 移动一个文件 
  116.      *  
  117.      * @param srcFile 
  118.      * @param destFile 
  119.      * @return 
  120.      * @throws IOException 
  121.      */  
  122.     public boolean moveFileTo(File srcFile, File destFile) throws IOException {  
  123.         boolean iscopy = copyFileTo(srcFile, destFile);  
  124.         if (!iscopy)  
  125.             return false;  
  126.         delFile(srcFile);  
  127.         return true;  
  128.     }  
  129.   
  130.     /** 
  131.      * 移动目录下的所有文件到指定目录 
  132.      *  
  133.      * @param srcDir 
  134.      * @param destDir 
  135.      * @return 
  136.      * @throws IOException 
  137.      */  
  138.     public boolean moveFilesTo(File srcDir, File destDir) throws IOException {  
  139.         if (!srcDir.isDirectory() || !destDir.isDirectory()) {  
  140.             return false;  
  141.         }  
  142.         File[] srcDirFiles = srcDir.listFiles();  
  143.         for (int i = 0; i < srcDirFiles.length; i++) {  
  144.             if (srcDirFiles[i].isFile()) {  
  145.                 File oneDestFile = new File(destDir.getPath() + "\\"  
  146.                         + srcDirFiles[i].getName());  
  147.                 moveFileTo(srcDirFiles[i], oneDestFile);  
  148.                 delFile(srcDirFiles[i]);  
  149.             } else if (srcDirFiles[i].isDirectory()) {  
  150.                 File oneDestFile = new File(destDir.getPath() + "\\"  
  151.                         + srcDirFiles[i].getName());  
  152.                 moveFilesTo(srcDirFiles[i], oneDestFile);  
  153.                 delDir(srcDirFiles[i]);  
  154.             }  
  155.   
  156.         }  
  157.         return true;  
  158.     }  
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值