如何复制一个文件

来源:互联网 发布:SQL如何删除默认约束 编辑:程序博客网 时间:2024/05/18 06:03

 我已经定义了一个copyFile(File file,File saveDir),能成功地复制文件,现在我想要复制一个文件,我想把这个文件夹下的所有文件和文件夹用文件列表形式表示,如果遇到文件就调用copyFile()函数复制,如果遇到文件夹调用它本身复制,但是复制时候出现异常:

显示:
输入文件所在路径:c:/film
文件路径:c://film
您输入的是一个目录...
输入要保存路径:d:/
c:/film下有2个文件
c:/film/f下有2个文件
正在复制文件: Thumbs.db  请稍后...
Exception in thread "main" java.lang.NullPointerException
 at bag.Copy.findName2(Copy.java:78)
 at bag.Copy.copyFile(Copy.java:104)
 at bag.Copy.copyFile2(Copy.java:168)
 at bag.Copy.copyFile2(Copy.java:171)
 at bag.Copy.main(Copy.java:207)

 

/**************************************************************************
                   copyFile2() 复制文件夹方法
**************************************************************************/
static void copyFile2(File oldDir,File newDir)
{
  //oldDir  要复制文件夹
  //newDir   存放路径
  //在nesDir文件夹下创建一个oldDir文件夹

  String strOldDir=oldDir.getName().toString(); 
  //oldDir转化为字符串strOldDir

  String strNewDir=newDir.toString();  
  //newDir转化为字符串strNewDir

  tring endDir=run(strNewDir+oldDir.getName()).trim(); 
  //run是自己定义函数,转化路径,如 c:/film转化为c://film以便java识别
  //endDir:在目的路径下建立一个文件夹

  File newSonFile = new File(endDir);
  File oldFiles[]=oldDir.listFiles();
  if(oldFiles!=null)
  {
    System.out.println(oldDir+"下有"+oldFiles.length+"个文件");
    for(int i=0;i<oldFiles.length;i++)
    {
      //如果是文件则调用复制函数
      if(oldFiles[i].isFile())
        copyFile(oldFiles[i],newSonFile);
      //如果是文件夹继续调用复制文件夹函数
      else
        copyFile2(oldFiles[i],newSonFile);
    }
  }
}
为什么?高手能帮我解决一下吗?多谢了.

原创粉丝点击