A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何伟超 金牌黑马   /  2014-3-13 13:55  /  995 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何伟超 于 2014-3-13 16:41 编辑

你要复制文件夹里的文件,但是不知道文件夹里面都有什么类型的文件,应该怎么获取文件的后缀名呢?
顺便请帖上代码!!!

4 个回复

倒序浏览
复制文件夹老毕不是说过吗 用到递归  复制时不用知道什么类型的文件吧? 如果要获取后缀名的话在递归的时候用lastIndexOf方法获取最后一“.”的位置 后面的就是后缀名了  代码没时间写了 你看看能不能理解得了
回复 使用道具 举报
ixiangfeng 发表于 2014-3-13 14:10
复制文件夹老毕不是说过吗 用到递归  复制时不用知道什么类型的文件吧? 如果要获取后缀名的话在递归的时候 ...

在哪一天?
回复 使用道具 举报
本帖最后由 ixiangfeng 于 2014-3-13 14:31 编辑

20天07视频 应该是这个 记得不太清楚 看一下这个视频看看能不能解决
回复 使用道具 举报
给你看一下代码
import java.io.*;
class  SendFile
{
        static String url1 = "d:\\nihao";
        static String url2 = "e:\\ccpy";
        public static void main(String[] args) throws IOException
        {
                //创建目标文件夹
                (new File(url2)).mkdirs();
                //获取源文件夹当前下的文件或目录
                File[] file = (new File(url1)).listFiles();
                for (int i =0;i<file.length ;i++ )
                {
                         if (file[i].isFile()) {                  
                                 // 复制文件                  
                                 copyFile(file[i],new File(url2+file[i].getName()));
                         }
                         if (file[i].isDirectory())
                         {
                                 //复制目录
                                        String sourDir = url1+File.separator+file[i].getName();
                                        String targDir = url2+File.separator+file[i].getName();
                                        copyDirectiory(sourDir,targDir);

                         }
                }
        }
        //复制文件
        public static void copyFile(File sour,File targ)
        {
                FileInputStream fis = null;
                FileOutputStream fos = null;
                try
                {
                        fis = new FileInputStream(sour);
                        fos = new FileOutputStream(targ);

                        BufferedInputStream bis = new BufferedInputStream(fis);
                        BufferedOutputStream bos = new BufferedOutputStream(fos);
                       
                        //缓冲数组
                        byte[] buf = new byte[1024*5];
                        int len = 0;
                        while ((len=bis.read(buf))!=-1)
                        {
                                bos.write(buf,0,len);
                                bos.flush();
                        }
                        bis.close();
                        bos.close();
                        fis.close();
                        fos.close();

                }
                catch (IOException e)
                {
                        e.printStackTrace();
                }
               
        }
        public static void copyDirectiory(String sourDir,String targDir)throws IOException
        {
                //新建文件目录
                (new File(targDir)).mkdirs();
                //获取源文件当前下的文件或目录
                File[] file = (new File(sourDir)).listFiles();
                for (int i = 0;i<file.length ;i++ )
                {
                        if (file[i].isFile())
                        {
                                //源文件
                                File sourFile = file[i];
                                //目标文件
                                File targFile = new File(new File(targDir).getAbsolutePath()+File.separator+file[i].getName());
                                copyFile(sourFile,targFile);
                        }
                        if (file[i].isDirectory())
                        {
                                //准备复制的源文件夹
                                String dir1 = sourDir+"/"+file[i].getName();
                                //准备复制的目标文件夹
                                String dir2 = targDir+""+file[i].getName();
                                copyDirectiory(dir1,dir2);
                        }
                }
        }

       
}


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马