Java对文件及文件夹的操作

 
  1. packagecom.umgsai.txyl.util;
  2. importjava.io.File;
  3. publicclassFileOperater{
  4. //验证字符串是否为正确路径名的正则表达式
  5. privatestaticStringmatches="[A-Za-z]:\\\\[^:?\"><*]*";
  6. //通过sPath.matches(matches)方法的返回值判断是否正确
  7. //sPath为路径字符串
  8. /**
  9. *根据路径删除指定的目录或文件,无论存在与否
  10. *
  11. *@paramsPath
  12. *要删除的目录或文件
  13. *@return删除成功返回true,否则返回false。
  14. */
  15. publicstaticbooleanDeleteFolder(StringsPath){
  16. booleanflag=false;
  17. Filefile=newFile(sPath);
  18. //判断目录或文件是否存在
  19. if(!file.exists()){//不存在返回false
  20. returnflag;
  21. }else{
  22. //判断是否为文件
  23. if(file.isFile()){//为文件时调用删除文件方法
  24. returndeleteFile(sPath);
  25. }else{//为目录时调用删除目录方法
  26. returndeleteDirectory(sPath);
  27. }
  28. }
  29. }
  30. /**
  31. *删除单个文件
  32. *
  33. *@paramsPath
  34. *被删除文件的文件名
  35. *@return单个文件删除成功返回true,否则返回false
  36. */
  37. publicstaticbooleandeleteFile(StringsPath){
  38. booleanflag=false;
  39. Filefile=newFile(sPath);
  40. //路径为文件且不为空则进行删除
  41. if(file.isFile()&&file.exists()){
  42. file.delete();
  43. flag=true;
  44. }
  45. returnflag;
  46. }
  47. /**
  48. *删除目录(文件夹)以及目录下的文件
  49. *
  50. *@paramsPath
  51. *被删除目录的文件路径
  52. *@return目录删除成功返回true,否则返回false
  53. */
  54. publicstaticbooleandeleteDirectory(StringsPath){
  55. //如果sPath不以文件分隔符结尾,自动添加文件分隔符
  56. if(!sPath.endsWith(File.separator)){
  57. sPath=sPath+File.separator;
  58. }
  59. FiledirFile=newFile(sPath);
  60. //如果dir对应的文件不存在,或者不是一个目录,则退出
  61. if(!dirFile.exists()||!dirFile.isDirectory()){
  62. returnfalse;
  63. }
  64. booleanflag=true;
  65. //删除文件夹下的所有文件(包括子目录)
  66. File[]files=dirFile.listFiles();
  67. for(inti=0;i<files.length;i++){
  68. //删除子文件
  69. if(files[i].isFile()){
  70. flag=deleteFile(files[i].getAbsolutePath());
  71. if(!flag)
  72. break;
  73. }//删除子目录
  74. else{
  75. flag=deleteDirectory(files[i].getAbsolutePath());
  76. if(!flag)
  77. break;
  78. }
  79. }
  80. if(!flag)
  81. returnfalse;
  82. //删除当前目录
  83. if(dirFile.delete()){
  84. returntrue;
  85. }else{
  86. returnfalse;
  87. }
  88. }
  89. publicstaticbooleanCreateFile(StringdestFileName){
  90. Filefile=newFile(destFileName);
  91. if(file.exists()){
  92. System.out.println("创建单个文件"+destFileName+"失败,目标文件已存在!");
  93. returnfalse;
  94. }
  95. if(destFileName.endsWith(File.separator)){
  96. System.out.println("创建单个文件"+destFileName+"失败,目标不能是目录!");
  97. returnfalse;
  98. }
  99. if(!file.getParentFile().exists()){
  100. System.out.println("目标文件所在路径不存在,准备创建。。。");
  101. if(!file.getParentFile().mkdirs()){
  102. System.out.println("创建目录文件所在的目录失败!");
  103. returnfalse;
  104. }
  105. }
  106. //创建目标文件
  107. try{
  108. if(file.createNewFile()){
  109. System.out.println("创建单个文件"+destFileName+"成功!");
  110. returntrue;
  111. }else{
  112. System.out.println("创建单个文件"+destFileName+"失败!");
  113. returnfalse;
  114. }
  115. }catch(Exceptione){
  116. e.printStackTrace();
  117. System.out.println("创建单个文件"+destFileName+"失败!");
  118. returnfalse;
  119. }
  120. }
  121. publicstaticbooleancreateDir(StringdestDirName){
  122. Filedir=newFile(destDirName);
  123. if(dir.exists()){
  124. System.out.println("创建目录"+destDirName+"失败,目标目录已存在!");
  125. returnfalse;
  126. }
  127. if(!destDirName.endsWith(File.separator))
  128. destDirName=destDirName+File.separator;
  129. //创建单个目录
  130. if(dir.mkdirs()){
  131. System.out.println("创建目录"+destDirName+"成功!");
  132. returntrue;
  133. }else{
  134. System.out.println("创建目录"+destDirName+"成功!");
  135. returnfalse;
  136. }
  137. }
  138. publicstaticStringcreateTempFile(Stringprefix,Stringsuffix,
  139. StringdirName){
  140. FiletempFile=null;
  141. try{
  142. if(dirName==null){
  143. //在默认文件夹下创建临时文件
  144. tempFile=File.createTempFile(prefix,suffix);
  145. returntempFile.getCanonicalPath();
  146. }else{
  147. Filedir=newFile(dirName);
  148. //如果临时文件所在目录不存在,首先创建
  149. if(!dir.exists()){
  150. if(!FileOperater.createDir(dirName)){
  151. System.out.println("创建临时文件失败,不能创建临时文件所在目录!");
  152. returnnull;
  153. }
  154. }
  155. tempFile=File.createTempFile(prefix,suffix,dir);
  156. returntempFile.getCanonicalPath();
  157. }
  158. }catch(Exceptione){
  159. e.printStackTrace();
  160. System.out.println("创建临时文件失败"+e.getMessage());
  161. returnnull;
  162. }
  163. }
  164. publicstaticvoidmain(String[]args){
  165. /*
  166. FileOperaterhfc=newFileOperater();
  167. Stringpath="D:\\Abc\\123\\Ab1";
  168. booleanresult=createDir(path);
  169. System.out.println(result);
  170. path="D:\\Abc\\124";
  171. result=hfc.DeleteFolder(path);
  172. System.out.println(result);
  173. //创建目录
  174. StringdirName="c:/test/test0/test1";
  175. createDir(dirName);
  176. //创建文件
  177. StringfileName=dirName+"/test2/testFile.txt";
  178. CreateFile(fileName);
  179. //创建临时文件
  180. Stringprefix="temp";
  181. Stringsuffix=".txt";
  182. for(inti=0;i<10;i++){
  183. System.out.println("创建了临时文件:"
  184. +createTempFile(prefix,suffix,dirName));
  185. }*/
  186. //deleteFile("c:/test/test0/test1/test2/testFile.txt");
  187. //deleteDirectory("c:/test/");
  188. }
  189. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值