首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

大神给小弟我看看这个方法有什么有关问题

2013-11-11 
大神给我看看这个方法有什么问题我想要这个方法能复制文件或者目录,可是当复制目录的时候,如果这个目录里

大神给我看看这个方法有什么问题
我想要这个方法能复制文件或者目录,可是当复制目录的时候,如果这个目录里面有对个子项,只能复制里面的一个子项  大神给看看啊


**
     * 复制文件或者目录
     * @param srcFile:原始文件或目录
     * @param desFile:目标文件或目录
     * 
     */
      
    public static void copyFile(File srcFile, File desFile)throws Exception {
        RandomAccessFile srcSaf = null;
        RandomAccessFile desSaf = null;
          
        try {
            // 如果要复制的是文件夹,要先创建文件夹
            if(srcFile.isDirectory()){
                desFile.mkdir();
                for(File sub : srcFile.listFiles()){
                        File newFile = new File(desFile, sub.getName());
                          
                        copyFile(sub, newFile);
                }
            }
            // 文件的复制
            srcSaf = new RandomAccessFile(srcFile, "r");
            desSaf = new RandomAccessFile(desFile, "rw");
              
            byte[] buf = new byte[1024*10];
            int len = 0;
            while((len = srcSaf.read(buf)) != -1){
                desSaf.write(buf, 0, len);
            }
              
        } catch (FileNotFoundException e) {
            throw e;
        } finally{
            srcSaf.close();
            desSaf.close();
        }
    }

[解决办法]

public static void copyFile(File srcFile, File desFile) {
RandomAccessFile srcSaf=null;
RandomAccessFile desSaf=null;
// 如果要复制的是文件夹,要先创建文件夹
if (srcFile.isDirectory()) {
desFile.mkdir();
for (File sub : srcFile.listFiles()) {
File newFile=new File(desFile,sub.getName());
copyFile(sub,newFile);
}
} else {
// 文件的复制
try {
srcSaf=new RandomAccessFile(srcFile,"r");
desSaf=new RandomAccessFile(desFile,"rw");
byte[] buf=new byte[1024*10];
int len=0;
while ((len=srcSaf.read(buf))!=-1) {
desSaf.write(buf,0,len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
srcSaf.close();
desSaf.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}

热点排行