Android基础之文件操作



android的文件操作要有权限:

[xhtml] view plaincopyprint?

   1. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>  

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

 

SD卡下的文件操作:

1、判断SD卡是否插入

[java] view plaincopyprint?

   1. Environment.getExternalStorageState().equals(  
   2.         android.os.Environment.MEDIA_MOUNTED);  

Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED);

2、获得sd卡根目录:

[java] view plaincopyprint?

   1. File skRoot = Environment.getExternalStorageDirectory();  

File skRoot = Environment.getExternalStorageDirectory();

私有目录下的文件操作:

1、获得私有根目录:

[java] view plaincopyprint?

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

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

还未整理

 

文件夹或文件夹操作:

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

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

[java] view plaincopyprint?

   1. String path = File.getPath();//相对  
   2. String path = File.getAbsoultePath();//绝对  

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

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

[java] view plaincopyprint?

   1. String parentPath = File.getParent();  

String parentPath = File.getParent();

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

[java] view plaincopyprint?

   1. String Name = File.getName();  

String Name = File.getName();

2、建立文件或文件夹

[java] view plaincopyprint?

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

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

3、判断是文件或文件夹

[java] view plaincopyprint?

   1. File.isDirectory()  

File.isDirectory()

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

[java] view plaincopyprint?

   1. File[] files = File.listFiles();  

File[] files = File.listFiles();

5、修改文件夹和文件名

[java] view plaincopyprint?

   1. File.renameTo(dest);  

File.renameTo(dest);

6、删除文件夹或文件

[java] view plaincopyprint?

   1. File.delete();  

File.delete();

 

 

[java] view plaincopyprint?

   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. }  

package otheri.common; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import otheri.io.Input; import otheri.io.Output; import android.content.Context; import android.os.Environment; public class FileHelper { private Context context; private String SDPATH; private String FILESPATH; public FileHelper(Context context) { this.context = context; SDPATH = Environment.getExternalStorageDirectory().getPath() + "//"; FILESPATH = this.context.getFilesDir().getPath() + "//"; } /** * 在SD卡上创建文件 * * @throws IOException */ public File creatSDFile(String fileName) throws IOException { File file = new File(SDPATH + fileName); file.createNewFile(); return file; } /** * 删除SD卡上的文件 * * @param fileName */ public boolean delSDFile(String fileName) { File file = new File(SDPATH + fileName); if (file == null || !file.exists() || file.isDirectory()) return false; file.delete(); return true; } /** * 在SD卡上创建目录 * * @param dirName */ public File creatSDDir(String dirName) { File dir = new File(SDPATH + dirName); dir.mkdir(); return dir; } /** * 删除SD卡上的目录 * * @param dirName */ public boolean delSDDir(String dirName) { File dir = new File(SDPATH + dirName); return delDir(dir); } /** * 修改SD卡上的文件或目录名 * * @param fileName */ public boolean renameSDFile(String oldfileName, String newFileName) { File oleFile = new File(SDPATH + oldfileName); File newFile = new File(SDPATH + newFileName); return oleFile.renameTo(newFile); } /** * 拷贝SD卡上的单个文件 * * @param path * @throws IOException */ public boolean copySDFileTo(String srcFileName, String destFileName) throws IOException { File srcFile = new File(SDPATH + srcFileName); File destFile = new File(SDPATH + destFileName); return copyFileTo(srcFile, destFile); } /** * 拷贝SD卡上指定目录的所有文件 * * @param srcDirName * @param destDirName * @return * @throws IOException */ public boolean copySDFilesTo(String srcDirName, String destDirName) throws IOException { File srcDir = new File(SDPATH + srcDirName); File destDir = new File(SDPATH + destDirName); return copyFilesTo(srcDir, destDir); } /** * 移动SD卡上的单个文件 * * @param srcFileName * @param destFileName * @return * @throws IOException */ public boolean moveSDFileTo(String srcFileName, String destFileName) throws IOException { File srcFile = new File(SDPATH + srcFileName); File destFile = new File(SDPATH + destFileName); return moveFileTo(srcFile, destFile); } /** * 移动SD卡上的指定目录的所有文件 * * @param srcDirName * @param destDirName * @return * @throws IOException */ public boolean moveSDFilesTo(String srcDirName, String destDirName) throws IOException { File srcDir = new File(SDPATH + srcDirName); File destDir = new File(SDPATH + destDirName); return moveFilesTo(srcDir, destDir); } /* * 将文件写入sd卡。如:writeSDFile("test.txt"); */ public Output writeSDFile(String fileName) throws IOException { File file = new File(SDPATH + fileName); FileOutputStream fos = new FileOutputStream(file); return new Output(fos); } /* * 在原有文件上继续写文件。如:appendSDFile("test.txt"); */ public Output appendSDFile(String fileName) throws IOException { File file = new File(SDPATH + fileName); FileOutputStream fos = new FileOutputStream(file, true); return new Output(fos); } /* * 从SD卡读取文件。如:readSDFile("test.txt"); */ public Input readSDFile(String fileName) throws IOException { File file = new File(SDPATH + fileName); FileInputStream fis = new FileInputStream(file); return new Input(fis); } /** * 建立私有文件 * * @param fileName * @return * @throws IOException */ public File creatDataFile(String fileName) throws IOException { File file = new File(FILESPATH + fileName); file.createNewFile(); return file; } /** * 建立私有目录 * * @param dirName * @return */ public File creatDataDir(String dirName) { File dir = new File(FILESPATH + dirName); dir.mkdir(); return dir; } /** * 删除私有文件 * * @param fileName * @return */ public boolean delDataFile(String fileName) { File file = new File(FILESPATH + fileName); return delFile(file); } /** * 删除私有目录 * * @param dirName * @return */ public boolean delDataDir(String dirName) { File file = new File(FILESPATH + dirName); return delDir(file); } /** * 更改私有文件名 * * @param oldName * @param newName * @return */ public boolean renameDataFile(String oldName, String newName) { File oldFile = new File(FILESPATH + oldName); File newFile = new File(FILESPATH + newName); return oldFile.renameTo(newFile); } /** * 在私有目录下进行文件复制 * * @param srcFileName * : 包含路径及文件名 * @param destFileName * @return * @throws IOException */ public boolean copyDataFileTo(String srcFileName, String destFileName) throws IOException { File srcFile = new File(FILESPATH + srcFileName); File destFile = new File(FILESPATH + destFileName); return copyFileTo(srcFile, destFile); } /** * 复制私有目录里指定目录的所有文件 * * @param srcDirName * @param destDirName * @return * @throws IOException */ public boolean copyDataFilesTo(String srcDirName, String destDirName) throws IOException { File srcDir = new File(FILESPATH + srcDirName); File destDir = new File(FILESPATH + destDirName); return copyFilesTo(srcDir, destDir); } /** * 移动私有目录下的单个文件 * * @param srcFileName * @param destFileName * @return * @throws IOException */ public boolean moveDataFileTo(String srcFileName, String destFileName) throws IOException { File srcFile = new File(FILESPATH + srcFileName); File destFile = new File(FILESPATH + destFileName); return moveFileTo(srcFile, destFile); } /** * 移动私有目录下的指定目录下的所有文件 * * @param srcDirName * @param destDirName * @return * @throws IOException */ public boolean moveDataFilesTo(String srcDirName, String destDirName) throws IOException { File srcDir = new File(FILESPATH + srcDirName); File destDir = new File(FILESPATH + destDirName); return moveFilesTo(srcDir, destDir); } /* * 将文件写入应用私有的files目录。如:writeFile("test.txt"); */ public Output wirteFile(String fileName) throws IOException { OutputStream os = context.openFileOutput(fileName, Context.MODE_WORLD_WRITEABLE); return new Output(os); } /* * 在原有文件上继续写文件。如:appendFile("test.txt"); */ public Output appendFile(String fileName) throws IOException { OutputStream os = context.openFileOutput(fileName, Context.MODE_APPEND); return new Output(os); } /* * 从应用的私有目录files读取文件。如:readFile("test.txt"); */ public Input readFile(String fileName) throws IOException { InputStream is = context.openFileInput(fileName); return new Input(is); } /**********************************************************************************************************/ /*********************************************************************************************************/ */ /** * 删除一个文件 * * @param file * @return */ public boolean delFile(File file) { if (file.isDirectory()) return false; return file.delete(); } /** * 删除一个目录(可以是非空目录) * * @param dir */ public boolean 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; } /** * 拷贝一个文件,srcFile源文件,destFile目标文件 * * @param path * @throws IOException */ public boolean copyFileTo(File srcFile, File destFile) throws IOException { if (srcFile.isDirectory() || destFile.isDirectory()) return false;// 判断是否是文件 FileInputStream fis = new FileInputStream(srcFile); FileOutputStream fos = new FileOutputStream(destFile); int readLen = 0; byte[] buf = new byte[1024]; while ((readLen = fis.read(buf)) != -1) { fos.write(buf, 0, readLen); } fos.flush(); fos.close(); fis.close(); return true; } /** * 拷贝目录下的所有文件到指定目录 * * @param srcDir * @param destDir * @return * @throws IOException */ public boolean 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 < 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],

 

getPath与getAbsoultePath的区别:

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

[java] view plaincopyprint?

   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());  

public static void test1(){ File file1 = new File(".//test1.txt"); File file2 = new File("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() throws Exception{ File file = new File("..//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() throws Exception{ File file = new File("D://Text.txt"); System.out.println(file.getCanonicalPath());

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

theDestDir); } } return true; } /** * 移动一个文件 * * @param srcFile * @param destFile * @return * @throws IOException */ public boolean moveFileTo(File srcFile, File destFile) throws IOException { boolean iscopy = copyFileTo(srcFile, destFile); if (!iscopy) return false; delFile(srcFile); return true; } /** * 移动目录下的所有文件到指定目录 * * @param srcDir * @param destDir * @return * @throws IOException */ public boolean moveFilesTo(File srcDir, File destDir) throws IOException { if (!srcDir.isDirectory() || !destDir.isDirectory()) { return false; } File[] srcDirFiles = srcDir.listFiles(); for (int i = 0; i < 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; } }   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值