黑马程序员技术交流社区
标题:
Java IO拷贝文件夹的问题
[打印本页]
作者:
aion2013tian
时间:
2013-11-29 22:16
标题:
Java IO拷贝文件夹的问题
eclipse报错如下:Exception in thread "main" java.io.FileNotFoundException: C:\axaa (拒绝访问。)
如果只是拷贝文件就可以,拷贝文件夹就不行,代码如下:
public class MainClass {
public static void main(String[] args) throws Exception {
findAndCopyPics("C:\\Users\\Administrator\\Desktop\\370to470");
}
public static void findAndCopyPics(String path) throws Exception {
File file = new File(path);
if (!file.isDirectory())
return;
File[] listFiles = file.listFiles();
for (File f : listFiles) {
if (f.isDirectory()) {// 是文件夹就递归
findAndCopyPics(path + "\\" + f.getName());
} else {// 不是文件夹,即是文件就拷备
copyPics(path + "\\" + f.getName());
}
}
}
public static void copyPics(String path) throws Exception {
File inputfile = new File(path);
File outputfile = new File("C:\\axaa\\");// 输出的文件夹.
System.out.println(path);
FileInputStream fis = new FileInputStream(inputfile);
FileOutputStream fos = new FileOutputStream(outputfile);
byte[] b = new byte[1024];
while (fis.read(b) > 0) {
fos.write(b);
}
fis.close();
fos.close();
}
fos.close();
}
作者:
陪你等日出
时间:
2013-11-29 22:51
本帖最后由 陪你等日出 于 2013-11-29 23:22 编辑
你是想拷贝文件夹,但是在你的代码里却没有mkdir()这个方法,如果不用这个方法创建文件夹那么你把复制的文件放在哪里的呢?
作者:
陪你等日出
时间:
2013-11-29 23:51
哥们你的代码太..... 建议以后贴的容易复制点呀{:soso_e127:}
我整理了好久,还是给你改了下
import java.io.*;
class MainClass {
public static void main(String[] args) throws Exception
{
//假设你把E盘下“aaa”这个文件夹给拷贝到E盘并命名为copyfile
findAndCopyPics("E:\\aaa",
"E:\\copyfile");
}
public static void findAndCopyPics(String fpath,String dpath) throws Exception
{
File file = new File(fpath);
if (file.isDirectory())
{
File copyfile = new File(dpath);
copyfile.mkdirs();
}
File[] listFiles = file.listFiles();
for (File f : listFiles) {
if (f.isDirectory())
{
// 是文件夹就递归
findAndCopyPics(fpath + "\\" + f.getName(),dpath+"\\"+f.getName());
}
else
{
// 不是文件夹,即是文件就拷备
copyPics(fpath + "\\" + f.getName(),dpath+"\\"+f.getName());
}
}
}
public static void copyPics(String fpath,String dpath) throws Exception
{
//File inputfile = new File(fpath);
//File outputfile = new File(dpath);// 输出的文件夹.
//System.out.println(path);
//FileInputStream fis = new FileInputStream(inputfile);
FileInputStream fis = new FileInputStream(fpath);
//FileOutputStream fos = new FileOutputStream(outputfile);
FileOutputStream fos = new FileOutputStream(dpath);
byte[] b = new byte[1024];
int len = 0;
while ((len=fis.read(b))!=-1)
{
fos.write(b,0,len);
}
fis.close();
fos.close();
}
}
复制代码
有的地方我改了,把你的源码注释了
作者:
aion2013tian
时间:
2013-11-30 20:08
陪你等日出 发表于 2013-11-29 23:51
哥们你的代码太..... 建议以后贴的容易复制点呀
我整理了好久,还是给你改了下
谢谢,弄明白了啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2