Posted on 2009-04-11 01:21
笑看风云 阅读(313)
评论(0) 编辑 收藏 所属分类:
Java
1package test;
2
3import java.io.BufferedReader;
4import java.io.File;
5import java.io.FileInputStream;
6import java.io.FileOutputStream;
7import java.io.FileReader;
8
9import junit.framework.TestCase;
10
11public class Filetest extends TestCase {
12
13 // 创建文件夹
14 public String creatdir(String dir) {
15 File dirFile;
16 boolean bFile;
17
18 bFile = false;
19 //指定创建文件夹的目录和名称
20 dirFile = new File(dir);
21 bFile = dirFile.exists();
22
23 if (bFile == true) {
24 System.out.println("文件夹已经存在.");
25 } else {
26 System.out.println("文件夹不存在,开始创建");
27 bFile = dirFile.mkdirs();
28 if (bFile == true) {
29 System.out.println("创建文件夹成功!");
30 } else {
31 System.out.println("创建文件夹失败.");
32 System.exit(1);
33 }
34 }
35
36 return dir;
37 }
38
39 //拷贝文件夹
40 public void copyDir(File from, File to) {
41 // 判断需要拷贝到的路径下的文件夹是否存在
42 if (!to.exists()) {
43 // 创建文件夹
44 to.mkdirs();
45 }
46 File[] files = from.listFiles();
47 for (int i = 0; i < files.length; i++) {//遍历文件夹
48 File file1 = files[i];
49 File file2 = new File(to.getPath() + File.separator
50 + files[i].getName());
51 if (!file1.isDirectory()) { //拷贝文件
52 copyFile(file1, file2);
53 } else {
54 copyDir(file1, file2);
55 }
56 }
57
58 }
59
60 //拷贝文件
61 public void copyFile(File src, File dest) {
62 try {
63 System.out.println(src.getAbsoluteFile() + " -> "
64 + dest.getAbsoluteFile());
65 FileInputStream in = new FileInputStream(src);
66 FileOutputStream out = new FileOutputStream(dest);
67 byte[] buffer = new byte[1024];
68 while (in.read(buffer) != -1) {
69 out.write(buffer);
70 }
71 out.close();
72 in.close();
73 System.out.println("文件拷贝成功");
74 } catch (Exception e) {
75 System.out.println("文件拷贝失败");
76 }
77
78 }
79
80 // 删除文件夹
81 // param folderPath 文件夹完整绝对路径
82 public void delFolder(String folderPath) {
83 try {
84 this.delAllFile(folderPath); // 删除完里面所有内容(第一步)
85 String filePath = folderPath;
86 filePath = filePath.toString();
87 java.io.File myFilePath = new java.io.File(filePath);
88 myFilePath.delete(); // 删除空文件夹(第二步)
89 } catch (Exception e) {
90 e.printStackTrace();
91 }
92 }
93
94 // 删除指定文件夹下所有文件(第一步)
95 // param path 文件夹完整绝对路径
96 public boolean delAllFile(String path) {
97 boolean flag = false;
98 File file = new File(path);
99 // 文件夹是否存在
100 if (!file.exists()) {
101 return flag;
102 }
103 // 如果不是目录
104 if (!file.isDirectory()) {
105 return flag;
106 }
107 String[] tempList = file.list();
108 File temp = null;
109 for (int i = 0; i < tempList.length; i++) {//遍历所有文件夹以及里面的文件
110 if (path.endsWith(File.separator)) { //文件分隔符,各个操作系统不一样,如WIndows的是"\",而Linux的是"/"
111 temp = new File(path + tempList[i]);
112 } else {
113 temp = new File(path + File.separator + tempList[i]);
114 }
115 if (temp.isFile()) {//删除文件
116 temp.delete();
117 }
118 if (temp.isDirectory()) {
119 delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件
120 delFolder(path + "/" + tempList[i]);// 再删除空文件夹
121 flag = true;
122 }
123 }
124 return flag;
125 }
126
127 //读文件内容
128 public File readfile(String path) {
129 BufferedReader bufread;
130 String read = "";
131 String readStr = "";
132 File file = new File(path);
133 try {
134 FileReader fileread = new FileReader(file);
135 bufread = new BufferedReader(fileread);
136 while ((read = bufread.readLine()) != null) {
137 readStr = readStr + read;
138 }
139 bufread.close();
140 } catch (Exception d) {
141 System.out.println(d.getMessage());
142 }
143 System.out.println("###readStr:" + readStr);
144 return file;
145 }
146
147 public void testcopyfile() {
148
149 Filetest t = new Filetest();
150 String a = "D://test1";
151 String b = "D://test2";
152 // t.copyDir(t.readfile(a), t.readfile(b));
153 // t.copyDir(new File(a), new File(b));
154 t.delFolder(a);
155
156 }
157}
158