zoukankan      html  css  js  c++  java
  • android的文件操作

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

    android的文件操作要有权限:

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

    SD卡下的文件操作:

    1、判断SD卡是否插入

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

    2、获得sd卡根目录:

    1. File skRoot = Environment.getExternalStorageDirectory();  
    1. File skRoot = Environment.getExternalStorageDirectory();  

    私有目录下的文件操作:

    1、获得私有根目录:

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

    还未整理

    文件夹或文件夹操作:

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

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

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

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

    1. String parentPath = File.getParent();  
    1. String parentPath = File.getParent();  

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

    1. String Name = File.getName();  
    1. String Name = File.getName();  

    2、建立文件或文件夹

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

    3、判断是文件或文件夹

    1. File.isDirectory()  
    1. File.isDirectory()  

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

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

    5、修改文件夹和文件名

    1. File.renameTo(dest);  
    1. File.renameTo(dest);  

    6、删除文件夹或文件

    1. File.delete();  
    1. File.delete();  
    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. }  
    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():返回抽象路径名的绝对路径名字符串。

    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. 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同样的代码得到不同的结果。

  • 相关阅读:
    Flex 学习笔记 Remoting中的作用域(转)
    Flex 学习笔记 动态设置itemRenderer
    发现一个很好玩的网站个人漫画
    AjaxLoad动态生成加载图标的网站
    如何提高大字符串(是从文本文件读取出来的,有2M多)在网页中的显示速度
    CSS纵向居中问题
    用javascript进行xsl转换
    实现鼠标感应效果
    随笔写写
    execCommand指令集
  • 原文地址:https://www.cnblogs.com/leihupqrst/p/3290973.html
Copyright © 2011-2022 走看看