黑马程序员技术交流社区

标题: 求助大神!IO流, "复制"多级文件夹报错!?拒绝访问? [打印本页]

作者: gincoo    时间: 2015-8-16 19:34
标题: 求助大神!IO流, "复制"多级文件夹报错!?拒绝访问?
本帖最后由 gincoo 于 2015-8-16 19:36 编辑

复制代码



求助!大神们来看看。我的程序到底哪里有问题???{:2_41:}

不知道是不是只读的问题,可是点掉取消只读后,关了再开还是只读。。

  1. public class Demo{
  2.         public static void main(String[] args) throws IOException {
  3.                 File srcFile = new File("D:\\aaa");
  4.                 File destFile = new File("E:\\");
  5.                 copyFile(srcFile,destFile);
  6.                 System.out.println("使用递归,复制多级文件夹完毕!");
  7.         }
  8.         public static void copyFile(File srcFile,File destFile) throws IOException{
  9.                 destFile = new File(destFile, srcFile.getName());
  10.                 /*
  11.                  * 一下的这一轮程序都是在destFile路径,目录下进行的
  12.                  */
  13.                 if(!destFile.exists()){
  14.                         destFile.mkdir();
  15.                         System.out.println("创建目录:"+destFile.getAbsolutePath());//获取绝对路径
  16.                 }
  17.                 File[] fileArray = srcFile.listFiles();
  18.                 for(File f : fileArray){
  19.                         if(f.isFile()){
  20.                                 BufferedInputStream bufIn = new BufferedInputStream(new FileInputStream(f));
  21.                                 BufferedOutputStream bufOut = new BufferedOutputStream(new FileOutputStream(destFile));
  22.                                 //一次读写一个字节数组
  23.                                 byte[] byteArray = new byte[1024];
  24.                                 int len =0;
  25.                                 while((len = bufIn.read(byteArray)) != -1){
  26.                                         bufOut.write(byteArray, 0, len);
  27.                                 }
  28.                                 bufIn.close();
  29.                                 bufOut.close();
  30.                                 System.out.println("复制文件"+f.getName()+"从 :"+f.getAbsolutePath() +"到:"
  31.                                                                                                                                         +new File(destFile,f.getName()).getAbsolutePath()+"完毕!");
  32.                         }else{
  33.                                 copyFile(f,destFile);
  34.                         }
  35.                 }
  36.         }
  37.         
  38. }
复制代码




作者: ℃葫芦    时间: 2015-8-16 19:53
自己新建个简单点的文件夹试试, windows里的有些文件动不了。
作者: gincoo    时间: 2015-8-16 20:17
本帖最后由 gincoo 于 2015-8-16 20:23 编辑
℃葫芦 发表于 2015-8-16 19:53
自己新建个简单点的文件夹试试, windows里的有些文件动不了。

逗我吗{:2_34:}
作者: kenfans    时间: 2015-8-16 20:47
你是不是自己文件的路径没写对明明是D盘的写E盘,而且要两个 \
作者: boboyuwu    时间: 2015-8-16 20:53
看出错信息你代码写的是E:\\aaa    实际文件夹在D:\\aaa吧   出错找不到文件夹
作者: 殷俊    时间: 2015-8-16 21:18
其实,你这是复制指定目录下的文件,而且想复制指定目录下的子目录里面的文件到你指定的目录下,不是复制文件夹,这个你要明白,再一个就是,复制文件到到指定的目录下,并不是复制文件,而是复制文件里面的内容,这个你要明白,也就是说,其实你是要复制文件到指定目录下的文件里面才行,你现在的情况是指定目录下面没有写入内容的文件,你只是将文件的内容写到了你指定的文件目录下面而已,所以报告你说找到不到文件,你在写入时,要明确指定写入的文件
作者: gincoo    时间: 2015-8-16 21:35
本帖最后由 gincoo 于 2015-8-16 21:50 编辑
kenfans 发表于 2015-8-16 20:47
你是不是自己文件的路径没写对明明是D盘的写E盘,而且要两个 \

天啊,同学,你是学java的吗?来骗分的吧{:2_34:}
作者: gincoo    时间: 2015-8-16 21:53
本帖最后由 gincoo 于 2015-8-16 22:04 编辑
殷俊 发表于 2015-8-16 21:18
其实,你这是复制指定目录下的文件,而且想复制指定目录下的子目录里面的文件到你指定的目录下,不是复制文件 ...

~~~~~~~~~~~~~~~~~~~~
作者: 殷俊    时间: 2015-8-16 22:11
gincoo 发表于 2015-8-16 21:53
不好意思,你是错的,你没看懂

{:3_65:}我之前出过和你一样的问题,经过老师和同学的解答,最终就是这样解决的,你的destFile指向的是e:\\aaa,写入时,根本没有写入的目的地
作者: 殷俊    时间: 2015-8-16 22:14
gincoo 发表于 2015-8-16 21:53
~~~~~~~~~~~~~~~~~~~~

{:3_65:}吓我一跳,你刚才的坚决否定,竟让我心情翻涌啊{:3_50:}
作者: kenfans    时间: 2015-8-16 23:27
gincoo 发表于 2015-8-16 21:35
天啊,同学,你是学java的吗?来骗分的吧

兄弟啊,你有几个分我还要骗啊,你那异常名是什么,文件找不到异常,说白了就是你的文件不存在,具体的行数,上面显示的42,58什么的你根本没写。

文件找不到最可能的错误就是文件名错了,文件路径错了,所以我就说你路径写错了难道不对吗。只是具体的位置我没找,因为大片的代码看着头疼。

楼上确实说得比我详细




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2