import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class IO { /**
 * @需求:把一个文件夹中的子文件考入指定的文件夹中
 */
public static void main(String[] args) {
File fc = new File("D:\\晋级\\jdbc");
String fvs = "D:\\晋级\\jdbc\\all";
copyfile(fc,fvs); } static void copyfile(File fc,String fvs) {
FileInputStream fin = null;
FileOutputStream fos = null;
File fv = new File(fvs);
System.out.println("创建文件夹:"+fv.mkdir());
if (fc.isDirectory()) {
File[] fs = fc.listFiles();
for (File f : fs) {
if (f.isDirectory()) {
copyfile(f, fvs);
} else  {
 try {
 String fname = f.getName();
fin = new FileInputStream(fc);

fos = new FileOutputStream(fv+"\\"+fname);
byte[] b = new byte[1024];
int len = 0;
while((len=fin.read(b))!=-1){
fos.write(b, 0, len);
fos.flush();
}
} catch (FileNotFoundException e) {

e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//关闭流
if(fin!=null){
try {
fin.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
} else {
             System.out.println("不是文件夹");
} }}

解决方案 »

  1.   

    D:\晋级\jdbc\01_传智播客JDBC_jdbc的理论概述 这个文件你查看一下,设置一下为可读可写的权限,有可能现在的权限只是可读,不清楚是不是linux还是windows,如果是windows右键-属性,将 只读的 勾去掉
      

  2.   

    系统是window7 64位的,我去掉了,还是没用,是不是代码问题啊
    java.io.FileNotFoundException: D:\晋级\jdbc\01_传智播客JDBC_jdbc的理论概述 (拒绝访问。)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at IO.copyfile(IO.java:32)
    at IO.copyfile(IO.java:28)
    at IO.main(IO.java:15)
      

  3.   

    你好,这里不是权限的问题,是你的有句代码有问题,我已经提你找出来了,就是
    try {
    String fname = f.getName();
    fin = new FileInputStream(f);  //请注意这里括号内不是fc(你的代码是fc),应该是f(文件)
    ........
    }这里改下就都可以了,我估计是你大意了才出的错吧,呵呵,改下吧。