Android 文件操作大全

本文详细介绍了Android应用中进行文件操作的方法,包括权限设置、SD卡文件读写、私有目录文件管理等。提供了创建、删除、复制文件及目录的具体实现,并对比了相对路径与绝对路径的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. android的文件操作要有权限:
  2. view plaincopy to clipboardprint?
    <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
     <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
  3. SD卡下的文件操作:
  4. 1、判断SD卡是否插入
  5. view plaincopy to clipboardprint?
    Environment.getExternalStorageState().equals(  
           android.os.Environment.MEDIA_MOUNTED); 
    Environment.getExternalStorageState().equals(
           android.os.Environment.MEDIA_MOUNTED);
  6. 2、获得sd卡根目录:
  7. view plaincopy to clipboardprint?
    File skRoot =Environment.getExternalStorageDirectory(); 
    File skRoot = Environment.getExternalStorageDirectory();
  8. 私有目录下的文件操作:
  9. 1、获得私有根目录:
  10. view plaincopy to clipboardprint?
    File fileRoot = Context.getFilesDir()+"\"; 
     File fileRoot = Context.getFilesDir()+"\";
  11. 还未整理
  12. 文件夹或文件夹操作:
  13. 1、确定或获得文件夹和文件路径
  14. a、获得文件或文件夹的绝对路径和相对路径。区别
  15. view plaincopy to clipboardprint?
    String path =File.getPath();//相对  
    String path = File.getAbsoultePath();//绝对 
    String path = File.getPath();//相对
    String path = File.getAbsoultePath();//绝对
  16. b 、获得文件或文件夹的父目录
  17. view plaincopy to clipboardprint?
    String parentPath = File.getParent(); 
    String parentPath = File.getParent();
  18. c、获得文件或文件夹的名称:
  19. view plaincopy to clipboardprint?
    String Name = File.getName(); 
    String Name = File.getName();
  20. 2、建立文件或文件夹
  21. view plaincopy to clipboardprint?
    File.mkDir(); //建立文件夹  
    File.createNewFile();//建立文件 
    File.mkDir(); //建立文件夹
    File.createNewFile();//建立文件
     
  22. 3、判断是文件或文件夹
  23. view plaincopy to clipboardprint?
    File.isDirectory() 
    File.isDirectory()
  24. 4、列出文件夹下的所有文件和文件夹名
  25. view plaincopy to clipboardprint?
    File[] files = File.listFiles(); 
    File[] files = File.listFiles();
  26. 5、修改文件夹和文件名
  27. view plaincopy to clipboardprint?
    File.renameTo(dest); 
    File.renameTo(dest);
  28. 6、删除文件夹或文件
  29. view plaincopy to clipboardprint?
    File.delete(); 
    File.delete();
  30. view plaincopy to clipboardprint?
    package otheri.common;  
     
    import java.io.File;  
    importjava.io.FileInputStream;  
    importjava.io.FileOutputStream;  
    importjava.io.IOException;  
    importjava.io.InputStream;  
    importjava.io.OutputStream;  
     
    import otheri.io.Input;  
    import otheri.io.Output;  
    importandroid.content.Context;  
    importandroid.os.Environment;  
     
    public class FileHelper {  
        privateContext context;  
        privateString SDPATH;  
        privateString FILESPATH;  
     
        publicFileHelper(Context context){  
           this.context = context;  
           SDPATH = Environment.getExternalStorageDirectory().getPath() +"\";  
           FILESPATH = this.context.getFilesDir().getPath() +"\";  
        
     
        
        public FilecreatSDFile(String fileName) throws IOException{  
           File file = new File(SDPATH +fileName);  
           file.createNewFile();  
           return file;  
        
     
        
        publicboolean delSDFile(String fileName){  
           File file = new File(SDPATH +fileName);  
           if (file == null || !file.exists() ||file.isDirectory())  
               return false;  
           file.delete();  
           return true;  
        
     
        
        public FilecreatSDDir(String dirName){  
           File dir = new File(SDPATH +dirName);  
           dir.mkdir();  
           return dir;  
        
     
        
        publicboolean delSDDir(String dirName){  
           File dir = new File(SDPATH +dirName);  
           return delDir(dir);  
        
     
        
        publicboolean renameSDFile(String oldfileName, String newFileName){  
           File oleFile = new File(SDPATH +oldfileName);  
           File newFile = new File(SDPATH +newFileName);  
           returnoleFile.renameTo(newFile);  
        
     
        
        publicboolean copySDFileTo(String srcFileName, StringdestFileName)  
               throws IOException {  
           File srcFile = new File(SDPATH +srcFileName);  
           File destFile = new File(SDPATH +destFileName);  
           return copyFileTo(srcFile,destFile);  
        
     
        
        publicboolean copySDFilesTo(String srcDirName, StringdestDirName)  
               throws IOException {  
           File srcDir = new File(SDPATH +srcDirName);  
           File destDir = new File(SDPATH +destDirName);  
           return copyFilesTo(srcDir,destDir);  
        
     
        
        publicboolean moveSDFileTo(String srcFileName, StringdestFileName)  
               throws IOException {  
           File srcFile = new File(SDPATH +srcFileName);  
           File destFile = new File(SDPATH +destFileName);  
           return moveFileTo(srcFile,destFile);  
        
     
        
        publicboolean moveSDFilesTo(String srcDirName, StringdestDirName)  
               throws IOException {  
           File srcDir = new File(SDPATH +srcDirName);  
           File destDir = new File(SDPATH +destDirName);  
           return moveFilesTo(srcDir,destDir);  
        
     
     
        
        publicOutput writeSDFile(String fileName) throws IOException{  
           File file = new File(SDPATH +fileName);  
           FileOutputStream fos = newFileOutputStream(file);  
           return new Output(fos);  
        
     
        
        publicOutput appendSDFile(String fileName) throws IOException{  
           File file = new File(SDPATH +fileName);  
           FileOutputStream fos = new FileOutputStream(file,true);  
           return new Output(fos);  
        
     
        
        public InputreadSDFile(String fileName) throws IOException{  
           File file = new File(SDPATH +fileName);  
           FileInputStream fis = newFileInputStream(file);  
           return new Input(fis);  
        
          
          
        
        public FilecreatDataFile(String fileName) throws IOException{  
           File file = new File(FILESPATH +fileName);  
           file.createNewFile();  
           return file;  
        
     
        
        public FilecreatDataDir(String dirName){  
           File dir = new File(FILESPATH +dirName);  
           dir.mkdir();  
           return dir;  
        
     
        
        publicboolean delDataFile(String fileName){  
           File file = new File(FILESPATH +fileName);  
           return delFile(file);  
        
     
        
        publicboolean delDataDir(String dirName){  
           File file = new File(FILESPATH +dirName);  
           return delDir(file);  
        
     
        
        publicboolean renameDataFile(String oldName, String newName){  
           File oldFile = new File(FILESPATH +oldName);  
           File newFile = new File(FILESPATH +newName);  
           returnoldFile.renameTo(newFile);  
        
     
        
        publicboolean copyDataFileTo(String srcFileName, StringdestFileName)  
               throws IOException {  
           File srcFile = new File(FILESPATH +srcFileName);  
           File destFile = new File(FILESPATH +destFileName);  
           return copyFileTo(srcFile,destFile);  
        
     
        
        publicboolean copyDataFilesTo(String srcDirName, StringdestDirName)  
               throws IOException {  
           File srcDir = new File(FILESPATH +srcDirName);  
           File destDir = new File(FILESPATH +destDirName);  
           return copyFilesTo(srcDir,destDir);  
        
     
        
        publicboolean moveDataFileTo(String srcFileName, StringdestFileName)  
               throws IOException {  
           File srcFile = new File(FILESPATH +srcFileName);  
           File destFile = new File(FILESPATH +destFileName);  
           return moveFileTo(srcFile,destFile);  
        
     
        
        publicboolean moveDataFilesTo(String srcDirName, StringdestDirName)  
               throws IOException {  
           File srcDir = new File(FILESPATH +srcDirName);  
           File destDir = new File(FILESPATH +destDirName);  
           return moveFilesTo(srcDir,destDir);  
        
     
        
        publicOutput wirteFile(String fileName) throws IOException{  
           OutputStream os =context.openFileOutput(fileName,  
                   Context.MODE_WORLD_WRITEABLE);  
           return new Output(os);  
        
     
        
        publicOutput appendFile(String fileName) throws IOException{  
           OutputStream os = context.openFileOutput(fileName,Context.MODE_APPEND);  
           return new Output(os);  
        
     
        
        public InputreadFile(String fileName) throws IOException{  
           InputStream is =context.openFileInput(fileName);  
           return new Input(is);  
        
          
          
          
        
        
        */  
        
        publicboolean delFile(File file){  
           if (file.isDirectory())  
               return false;  
           return file.delete();  
        
     
        
        publicboolean delDir(File dir){  
           if (dir == null || !dir.exists() || dir.isFile()){  
               return false;  
            
           for (File file : dir.listFiles()){  
               if (file.isFile()) {  
                   file.delete();  
               } else if (file.isDirectory()){  
                   delDir(file);// 递归  
                
            
           dir.delete();  
           return true;  
        
     
        
        publicboolean copyFileTo(File srcFile, File destFile) throws IOException{  
           if (srcFile.isDirectory() ||destFile.isDirectory())  
               return false;// 判断是否是文件  
           FileInputStream fis = newFileInputStream(srcFile);  
           FileOutputStream fos = newFileOutputStream(destFile);  
           int readLen = 0;  
           byte[] buf = newbyte[1024];  
           while ((readLen = fis.read(buf)) != -1){  
               fos.write(buf, 0,readLen);  
            
           fos.flush();  
           fos.close();  
           fis.close();  
           return true;  
        
     
        
        publicboolean copyFilesTo(File srcDir, File destDir) throws IOException{  
           if (!srcDir.isDirectory() ||!destDir.isDirectory())  
               return false;// 判断是否是目录  
           if (!destDir.exists())  
               return false;//判断目标目录是否存在  
           File[] srcFiles =srcDir.listFiles();  
           for (int i = 0; i &lt; srcFiles.length; i++){  
               if (srcFiles[i].isFile()){  
                   // 获得目标文件  
                   File destFile = new File(destDir.getPath() +"\" 
                           + srcFiles[i].getName());  
                   copyFileTo(srcFiles[i],destFile);  
               } else if (srcFiles[i].isDirectory()){  
                   File theDestDir = new File(destDir.getPath() +"\" 
                           + srcFiles[i].getName());  
                   copyFilesTo(srcFiles[i],theDestDir);  
                
            
           return true;  
        
     
        
        publicboolean moveFileTo(File srcFile, File destFile) throws IOException{  
           boolean iscopy = copyFileTo(srcFile,destFile);  
           if (!iscopy)  
               return false;  
           delFile(srcFile);  
           return true;  
        
     
        
        publicboolean moveFilesTo(File srcDir, File destDir) throws IOException{  
           if (!srcDir.isDirectory() || !destDir.isDirectory()){  
               return false;  
            
           File[] srcDirFiles =srcDir.listFiles();  
           for (int i = 0; i &lt; srcDirFiles.length; i++){  
               if (srcDirFiles[i].isFile()){  
                   File oneDestFile = new File(destDir.getPath() +"\" 
                           +srcDirFiles[i].getName());  
                   moveFileTo(srcDirFiles[i],oneDestFile);  
                   delFile(srcDirFiles[i]);  
               } else if (srcDirFiles[i].isDirectory()){  
                   File oneDestFile = new File(destDir.getPath() +"\" 
                           +srcDirFiles[i].getName());  
                   moveFilesTo(srcDirFiles[i],oneDestFile);  
                   delDir(srcDirFiles[i]);  
                
     
            
           return true;  
        

    package otheri.common;
  31. import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
  32. import otheri.io.Input;
    import otheri.io.Output;
    import android.content.Context;
    import android.os.Environment;
  33. public class FileHelper {
     private Context context;
     private String SDPATH;
     private String FILESPATH;
  34.  public FileHelper(Context context) {
      this.context = context;
      SDPATH =Environment.getExternalStorageDirectory().getPath() + "\";
      FILESPATH =this.context.getFilesDir().getPath() + "\";
     }
  35.  
     public File creatSDFile(String fileName) throwsIOException {
      File file = new File(SDPATH +fileName);
      file.createNewFile();
      return file;
     }
  36.  
     public boolean delSDFile(String fileName) {
      File file = new File(SDPATH +fileName);
      if (file == null ||!file.exists() || file.isDirectory())
       returnfalse;
      file.delete();
      return true;
     }
  37.  
     public File creatSDDir(String dirName) {
      File dir = new File(SDPATH +dirName);
      dir.mkdir();
      return dir;
     }
  38.  
     public boolean delSDDir(String dirName) {
      File dir = new File(SDPATH +dirName);
      return delDir(dir);
     }
  39.  
     public boolean renameSDFile(String oldfileName,String newFileName) {
      File oleFile = new File(SDPATH+ oldfileName);
      File newFile = new File(SDPATH+ newFileName);
      returnoleFile.renameTo(newFile);
     }
  40.  
     public boolean copySDFileTo(String srcFileName,String destFileName)
       throwsIOException {
      File srcFile = new File(SDPATH+ srcFileName);
      File destFile = new File(SDPATH+ destFileName);
      return copyFileTo(srcFile,destFile);
     }
  41.  
     public boolean copySDFilesTo(String srcDirName,String destDirName)
       throwsIOException {
      File srcDir = new File(SDPATH +srcDirName);
      File destDir = new File(SDPATH+ destDirName);
      return copyFilesTo(srcDir,destDir);
     }
  42.  
     public boolean moveSDFileTo(String srcFileName,String destFileName)
       throwsIOException {
      File srcFile = new File(SDPATH+ srcFileName);
      File destFile = new File(SDPATH+ destFileName);
      return moveFileTo(srcFile,destFile);
     }
  43.  
     public boolean moveSDFilesTo(String srcDirName,String destDirName)
       throwsIOException {
      File srcDir = new File(SDPATH +srcDirName);
      File destDir = new File(SDPATH+ destDirName);
      return moveFilesTo(srcDir,destDir);
     }

  44.  
     public Output writeSDFile(String fileName) throwsIOException {
      File file = new File(SDPATH +fileName);
      FileOutputStream fos = newFileOutputStream(file);
      return new Output(fos);
     }
  45.  
     public Output appendSDFile(String fileName)throws IOException {
      File file = new File(SDPATH +fileName);
      FileOutputStream fos = newFileOutputStream(file, true);
      return new Output(fos);
     }
  46.  
     public Input readSDFile(String fileName) throwsIOException {
      File file = new File(SDPATH +fileName);
      FileInputStream fis = newFileInputStream(file);
      return new Input(fis);
     }
     
     
     
     public File creatDataFile(String fileName) throwsIOException {
      File file = new File(FILESPATH+ fileName);
      file.createNewFile();
      return file;
     }
  47.  
     public File creatDataDir(String dirName) {
      File dir = new File(FILESPATH +dirName);
      dir.mkdir();
      return dir;
     }
  48.  
     public boolean delDataFile(String fileName){
      File file = new File(FILESPATH+ fileName);
      return delFile(file);
     }
  49.  
     public boolean delDataDir(String dirName) {
      File file = new File(FILESPATH+ dirName);
      return delDir(file);
     }
  50.  
     public boolean renameDataFile(String oldName,String newName) {
      File oldFile = newFile(FILESPATH + oldName);
      File newFile = newFile(FILESPATH + newName);
      returnoldFile.renameTo(newFile);
     }
  51.  
     public boolean copyDataFileTo(String srcFileName,String destFileName)
       throwsIOException {
      File srcFile = newFile(FILESPATH + srcFileName);
      File destFile = newFile(FILESPATH + destFileName);
      return copyFileTo(srcFile,destFile);
     }
  52.  
     public boolean copyDataFilesTo(String srcDirName,String destDirName)
       throwsIOException {
      File srcDir = newFile(FILESPATH + srcDirName);
      File destDir = newFile(FILESPATH + destDirName);
      return copyFilesTo(srcDir,destDir);
     }
  53.  
     public boolean moveDataFileTo(String srcFileName,String destFileName)
       throwsIOException {
      File srcFile = newFile(FILESPATH + srcFileName);
      File destFile = newFile(FILESPATH + destFileName);
      return moveFileTo(srcFile,destFile);
     }
  54.  
     public boolean moveDataFilesTo(String srcDirName,String destDirName)
       throwsIOException {
      File srcDir = newFile(FILESPATH + srcDirName);
      File destDir = newFile(FILESPATH + destDirName);
      return moveFilesTo(srcDir,destDir);
     }
  55.  
     public Output wirteFile(String fileName) throwsIOException {
      OutputStream os =context.openFileOutput(fileName,
        Context.MODE_WORLD_WRITEABLE);
      return new Output(os);
     }
  56.  
     public Output appendFile(String fileName) throwsIOException {
      OutputStream os =context.openFileOutput(fileName, Context.MODE_APPEND);
      return new Output(os);
     }
  57.  
     public Input readFile(String fileName) throwsIOException {
      InputStream is =context.openFileInput(fileName);
      return new Input(is);
     }
     
     
     
     
     
      */
     
     public boolean delFile(File file) {
      if (file.isDirectory())
       returnfalse;
      return file.delete();
     }
  58.  
     public boolean delDir(File dir) {
      if (dir == null ||!dir.exists() || dir.isFile()) {
       returnfalse;
      }
      for (File file :dir.listFiles()) {
       if(file.isFile()) {
        file.delete();
       } else if(file.isDirectory()) {
        delDir(file);//递归
       }
      }
      dir.delete();
      return true;
     }
  59.  
     public boolean copyFileTo(File srcFile, FiledestFile) throws IOException {
      if (srcFile.isDirectory() ||destFile.isDirectory())
       returnfalse;// 判断是否是文件
      FileInputStream fis = newFileInputStream(srcFile);
      FileOutputStream fos = newFileOutputStream(destFile);
      int readLen = 0;
      byte[] buf = newbyte[1024];
      while ((readLen =fis.read(buf)) != -1) {
       fos.write(buf,0, readLen);
      }
      fos.flush();
      fos.close();
      fis.close();
      return true;
     }
  60.  
     public boolean copyFilesTo(File srcDir, FiledestDir) throws IOException {
      if (!srcDir.isDirectory() ||!destDir.isDirectory())
       returnfalse;// 判断是否是目录
      if (!destDir.exists())
       returnfalse;// 判断目标目录是否存在
      File[] srcFiles =srcDir.listFiles();
      for (int i = 0; i&lt; srcFiles.length; i++) {
       if(srcFiles[i].isFile()) {
        //获得目标文件
        FiledestFile = new File(destDir.getPath() + "\"
          +srcFiles[i].getName());
        copyFileTo(srcFiles[i],destFile);
       } else if(srcFiles[i].isDirectory()) {
        FiletheDestDir = new File(destDir.getPath() + "\"
          +srcFiles[i].getName());
        copyFilesTo(srcFiles[i],theDestDir);
       }
      }
      return true;
     }
  61.  
     public boolean moveFileTo(File srcFile, FiledestFile) throws IOException {
      boolean iscopy =copyFileTo(srcFile, destFile);
      if (!iscopy)
       returnfalse;
      delFile(srcFile);
      return true;
     }
  62.  
     public boolean moveFilesTo(File srcDir, FiledestDir) throws IOException {
      if (!srcDir.isDirectory() ||!destDir.isDirectory()) {
       returnfalse;
      }
      File[] srcDirFiles =srcDir.listFiles();
      for (int i = 0; i&lt; srcDirFiles.length; i++) {
       if(srcDirFiles[i].isFile()) {
        FileoneDestFile = new File(destDir.getPath() + "\"
          +srcDirFiles[i].getName());
        moveFileTo(srcDirFiles[i],oneDestFile);
        delFile(srcDirFiles[i]);
       } else if(srcDirFiles[i].isDirectory()) {
        FileoneDestFile = new File(destDir.getPath() + "\"
          +srcDirFiles[i].getName());
        moveFilesTo(srcDirFiles[i],oneDestFile);
        delDir(srcDirFiles[i]);
       }
  63.   }
      return true;
     }
    }
     
  64. getPath与getAbsoultePath的区别:
  65. getAbsolutePath():返回抽象路径名的绝对路径名字符串。
  66. view plaincopy to clipboardprint?
    public static voidtest1(){  
           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  
     
    ----------------------------------------------------  
     
    public static void test2() 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  
     
    --------------------------------------------  
    public static void test3() throwsException{  
           File file = newFile("D:\\Text.txt");  
           System.out.println(file.getCanonicalPath()); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值