java文件和文件夹复制、删除、移动操作
1. import java.io.File;
2. import java.io.FileInputStream;
3. import java.io.FileOutputStream;
4. import java.io.FileWriter;
5. import java.io.InputStream;
6. import java.io.PrintWriter;
7.
8. public class CopyFile {
9. public CopyFile() {
10. }
11.
12. /**
13. * 新建目录
14. * @param folderPath String 如 c:/fqf
15. * @return boolean
16. */
17. public void newFolder(String folderPath) {
18. try {
19. String filePath = folderPath;
20. filePath = filePath.toString();
21. new java.io.File(filePath);
22. if (!myFilePath.exists()) {
23. myFilePath.mkdir();
24. }
25. }
26. catch (Exception e) {
27. "新建目录操作出错");
28. e.printStackTrace();
29. }
30. }
31.
32. /**
33. * 新建文件
34. * @param filePathAndName String 文件路径及名称 如c:/fqf.txt
35. * @param fileContent String 文件内容
36. * @return boolean
37. */
38. public void newFile(String filePathAndName, String fileContent) {
39.
40. try {
41. String filePath = filePathAndName;
42. //取的路径及文件名
43. new File(filePath);
44. /**如果文件不存在就建一个新文件*/
45. if (!myFilePath.exists()) {
46. myFilePath.createNewFile();
47. }
48. new FileWriter(myFilePath); //用来写入字符文件的便捷类, 在给出 File 对象的情况下构造一个 FileWriter 对象
49. new PrintWriter(resultFile); //向文本输出流打印对象的格式化表示形式,使用指定文件创建不具有自动行刷新的新 PrintWriter。
50. String strContent = fileContent;
51. myFile.println(strContent);
52. resultFile.close();
53.
54. }
55. catch (Exception e) {
56. "新建文件操作出错");
57. e.printStackTrace();
58.
59. }
60.
61. }
62.
63. /**
64. * 删除文件
65. * @param filePathAndName String 文件路径及名称 如c:/fqf.txt
66. * @param fileContent String
67. * @return boolean
68. */
69. public void delFile(String filePathAndName) {
70. try {
71. String filePath = filePathAndName;
72. filePath = filePath.toString();
73. new java.io.File(filePath);
74. myDelFile.delete();
75.
76. }
77. catch (Exception e) {
78. "删除文件操作出错");
79. e.printStackTrace();
80.
81. }
82.
83. }
84.
85. /**
86. * 删除文件夹
87. * @param filePathAndName String 文件夹路径及名称 如c:/fqf
88. * @param fileContent String
89. * @return boolean
90. */
91. public void delFolder(String folderPath) {
92. try {
93. //删除完里面所有内容
94. String filePath = folderPath;
95. filePath = filePath.toString();
96. new java.io.File(filePath);
97. //删除空文件夹
98.
99. }
100. catch (Exception e) {
101. "删除文件夹操作出错");
102. e.printStackTrace();
103.
104. }
105.
106. }
107.
108. /**
109. * 删除文件夹里面的所有文件
110. * @param path String 文件夹路径 如 c:/fqf
111. */
112. public void delAllFile(String path) {
113. new File(path);
114. if (!file.exists()) {
115. return;
116. }
117. if (!file.isDirectory()) {
118. return;
119. }
120. String[] tempList = file.list();
121. null;
122. for (int i = 0; i < tempList.length; i++) {
123. if (path.endsWith(File.separator)) {
124. new File(path + tempList[i]);
125. }
126. else {
127. new File(path + File.separator + tempList[i]);
128. }
129. if (temp.isFile()) {
130. temp.delete();
131. }
132. if (temp.isDirectory()) {
133. "/"+ tempList[i]);//先删除文件夹里面的文件
134. "/"+ tempList[i]);//再删除空文件夹
135. }
136. }
137. }
138.
139. /**
140. * 复制单个文件
141. * @param oldPath String 原文件路径 如:c:/fqf.txt
142. * @param newPath String 复制后路径 如:f:/fqf.txt
143. * @return boolean
144. */
145. public void copyFile(String oldPath, String newPath) {
146. try {
147. // int bytesum = 0;
148. int byteread = 0;
149. new File(oldPath);
150. if (oldfile.exists()) { //文件存在时
151. new FileInputStream(oldPath); //读入原文件
152. new FileOutputStream(newPath);
153. byte[] buffer = new byte[1444];
154. // int length;
155. while ( (byteread = inStream.read(buffer)) != -1) {
156. // bytesum += byteread; //字节数 文件大小
157. // System.out.println(bytesum);
158. 0, byteread);
159. }
160. inStream.close();
161. }
162. }
163. catch (Exception e) {
164. "复制单个文件操作出错");
165. e.printStackTrace();
166.
167. }
168.
169. }
170.
171. /**
172. * 复制整个文件夹内容
173. * @param oldPath String 原文件路径 如:c:/fqf
174. * @param newPath String 复制后路径 如:f:/fqf/ff
175. * @return boolean
176. */
177. public void copyFolder(String oldPath, String newPath) {
178.
179. try {
180. new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹
181. new File(oldPath);
182. String[] file=a.list();
183. null;
184. for (int i = 0; i < file.length; i++) {
185. if(oldPath.endsWith(File.separator)){
186. new File(oldPath+file[i]);
187. }
188. else{
189. new File(oldPath+File.separator+file[i]);
190. }
191.
192. if(temp.isFile()){
193. new FileInputStream(temp);
194. new FileOutputStream(newPath + "/" +
195. (temp.getName()).toString());
196. byte[] b = new byte[1024 * 5];
197. int len;
198. while ( (len = input.read(b)) != -1) {
199. 0, len);
200. }
201. output.flush();
202. output.close();
203. input.close();
204. }
205. if(temp.isDirectory()){//如果是子文件夹
206. "/"+file[i],newPath+"/"+file[i]);
207. }
208. }
209. }
210. catch (Exception e) {
211. "复制整个文件夹内容操作出错");
212. e.printStackTrace();
213.
214. }
215.
216. }
217.
218. /**
219. * 移动文件到指定目录
220. * @param oldPath String 如:c:/fqf.txt
221. * @param newPath String 如:d:/fqf.txt
222. */
223. public void moveFile(String oldPath, String newPath) {
224. copyFile(oldPath, newPath);
225. delFile(oldPath);
226.
227. }
228.
229. /**
230. * 移动文件到指定目录
231. * @param oldPath String 如:c:/fqf.txt
232. * @param newPath String 如:d:/fqf.txt
233. */
234. public void moveFolder(String oldPath, String newPath) {
235. copyFolder(oldPath, newPath);
236. delFolder(oldPath);
237.
238. }
239. public static void main(String[] args){
240. new CopyFile();
241. // file.newFolder("newFolder22222");
242. "E:/1");
243. }
244. // 拷贝文件
245. private void copyFile2(String source, String dest) {
246. try {
247. new File(source);
248. new File(dest);
249. new FileInputStream(in);
250. new FileOutputStream(out);
251. byte[] buffer = new byte[10240];
252. int i = 0;
253. while ((i = inFile.read(buffer)) != -1) {
254. 0, i);
255. //end while
256. inFile.close();
257. outFile.close();
258. //end try
259. catch (Exception e) {
260.
261. //end catch
262. //end copyFile
263.
264. }
[java]
view plain
copy
print
?
1. import java.io.File;
2. import java.io.FileInputStream;
3. import java.io.FileOutputStream;
4. import java.io.FileWriter;
5. import java.io.InputStream;
6. import java.io.PrintWriter;
7.
8. public class CopyFile {
9. public CopyFile() {
10. }
11.
12. /**
13. * 新建目录
14. * @param folderPath String 如 c:/fqf
15. * @return boolean
16. */
17. public void newFolder(String folderPath) {
18. try {
19. String filePath = folderPath;
20. filePath = filePath.toString();
21. new java.io.File(filePath);
22. if (!myFilePath.exists()) {
23. myFilePath.mkdir();
24. }
25. }
26. catch (Exception e) {
27. "新建目录操作出错");
28. e.printStackTrace();
29. }
30. }
31.
32. /**
33. * 新建文件
34. * @param filePathAndName String 文件路径及名称 如c:/fqf.txt
35. * @param fileContent String 文件内容
36. * @return boolean
37. */
38. public void newFile(String filePathAndName, String fileContent) {
39.
40. try {
41. String filePath = filePathAndName;
42. //取的路径及文件名
43. new File(filePath);
44. /**如果文件不存在就建一个新文件*/
45. if (!myFilePath.exists()) {
46. myFilePath.createNewFile();
47. }
48. new FileWriter(myFilePath); //用来写入字符文件的便捷类, 在给出 File 对象的情况下构造一个 FileWriter 对象
49. new PrintWriter(resultFile); //向文本输出流打印对象的格式化表示形式,使用指定文件创建不具有自动行刷新的新 PrintWriter。
50. String strContent = fileContent;
51. myFile.println(strContent);
52. resultFile.close();
53.
54. }
55. catch (Exception e) {
56. "新建文件操作出错");
57. e.printStackTrace();
58.
59. }
60.
61. }
62.
63. /**
64. * 删除文件
65. * @param filePathAndName String 文件路径及名称 如c:/fqf.txt
66. * @param fileContent String
67. * @return boolean
68. */
69. public void delFile(String filePathAndName) {
70. try {
71. String filePath = filePathAndName;
72. filePath = filePath.toString();
73. new java.io.File(filePath);
74. myDelFile.delete();
75.
76. }
77. catch (Exception e) {
78. "删除文件操作出错");
79. e.printStackTrace();
80.
81. }
82.
83. }
84.
85. /**
86. * 删除文件夹
87. * @param filePathAndName String 文件夹路径及名称 如c:/fqf
88. * @param fileContent String
89. * @return boolean
90. */
91. public void delFolder(String folderPath) {
92. try {
93. //删除完里面所有内容
94. String filePath = folderPath;
95. filePath = filePath.toString();
96. new java.io.File(filePath);
97. //删除空文件夹
98.
99. }
100. catch (Exception e) {
101. "删除文件夹操作出错");
102. e.printStackTrace();
103.
104. }
105.
106. }
107.
108. /**
109. * 删除文件夹里面的所有文件
110. * @param path String 文件夹路径 如 c:/fqf
111. */
112. public void delAllFile(String path) {
113. new File(path);
114. if (!file.exists()) {
115. return;
116. }
117. if (!file.isDirectory()) {
118. return;
119. }
120. String[] tempList = file.list();
121. null;
122. for (int i = 0; i < tempList.length; i++) {
123. if (path.endsWith(File.separator)) {
124. new File(path + tempList[i]);
125. }
126. else {
127. new File(path + File.separator + tempList[i]);
128. }
129. if (temp.isFile()) {
130. temp.delete();
131. }
132. if (temp.isDirectory()) {
133. "/"+ tempList[i]);//先删除文件夹里面的文件
134. "/"+ tempList[i]);//再删除空文件夹
135. }
136. }
137. }
138.
139. /**
140. * 复制单个文件
141. * @param oldPath String 原文件路径 如:c:/fqf.txt
142. * @param newPath String 复制后路径 如:f:/fqf.txt
143. * @return boolean
144. */
145. public void copyFile(String oldPath, String newPath) {
146. try {
147. // int bytesum = 0;
148. int byteread = 0;
149. new File(oldPath);
150. if (oldfile.exists()) { //文件存在时
151. new FileInputStream(oldPath); //读入原文件
152. new FileOutputStream(newPath);
153. byte[] buffer = new byte[1444];
154. // int length;
155. while ( (byteread = inStream.read(buffer)) != -1) {
156. // bytesum += byteread; //字节数 文件大小
157. // System.out.println(bytesum);
158. 0, byteread);
159. }
160. inStream.close();
161. }
162. }
163. catch (Exception e) {
164. "复制单个文件操作出错");
165. e.printStackTrace();
166.
167. }
168.
169. }
170.
171. /**
172. * 复制整个文件夹内容
173. * @param oldPath String 原文件路径 如:c:/fqf
174. * @param newPath String 复制后路径 如:f:/fqf/ff
175. * @return boolean
176. */
177. public void copyFolder(String oldPath, String newPath) {
178.
179. try {
180. new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹
181. new File(oldPath);
182. String[] file=a.list();
183. null;
184. for (int i = 0; i < file.length; i++) {
185. if(oldPath.endsWith(File.separator)){
186. new File(oldPath+file[i]);
187. }
188. else{
189. new File(oldPath+File.separator+file[i]);
190. }
191.
192. if(temp.isFile()){
193. new FileInputStream(temp);
194. new FileOutputStream(newPath + "/" +
195. (temp.getName()).toString());
196. byte[] b = new byte[1024 * 5];
197. int len;
198. while ( (len = input.read(b)) != -1) {
199. 0, len);
200. }
201. output.flush();
202. output.close();
203. input.close();
204. }
205. if(temp.isDirectory()){//如果是子文件夹
206. "/"+file[i],newPath+"/"+file[i]);
207. }
208. }
209. }
210. catch (Exception e) {
211. "复制整个文件夹内容操作出错");
212. e.printStackTrace();
213.
214. }
215.
216. }
217.
218. /**
219. * 移动文件到指定目录
220. * @param oldPath String 如:c:/fqf.txt
221. * @param newPath String 如:d:/fqf.txt
222. */
223. public void moveFile(String oldPath, String newPath) {
224. copyFile(oldPath, newPath);
225. delFile(oldPath);
226.
227. }
228.
229. /**
230. * 移动文件到指定目录
231. * @param oldPath String 如:c:/fqf.txt
232. * @param newPath String 如:d:/fqf.txt
233. */
234. public void moveFolder(String oldPath, String newPath) {
235. copyFolder(oldPath, newPath);
236. delFolder(oldPath);
237.
238. }
239. public static void main(String[] args){
240. new CopyFile();
241. // file.newFolder("newFolder22222");
242. "E:/1");
243. }
244. // 拷贝文件
245. private void copyFile2(String source, String dest) {
246. try {
247. new File(source);
248. new File(dest);
249. new FileInputStream(in);
250. new FileOutputStream(out);
251. byte[] buffer = new byte[10240];
252. int i = 0;
253. while ((i = inFile.read(buffer)) != -1) {
254. 0, i);
255. //end while
256. inFile.close();
257. outFile.close();
258. //end try
259. catch (Exception e) {
260.
261. //end catch
262. //end copyFile
263.
264. }