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