【转】Java删除文件夹和文件

原文网址:http://kxjhlele.iteye.com/blog/323657

以前在javaeye看到过关于Java操作文件的一篇文章,写的很好,但找了半天也没找到,就把找到底几篇文章整理一下,做个总结,算是一个学习备份……

 

1,验证传入路径是否为正确的路径名(Windows系统,其他系统未使用)

 

 

Java代码  收藏代码
  1. // 验证字符串是否为正确路径名的正则表达式  
  2. private static String matches = "[A-Za-z]:\\\\[^:?\"><*]*";  
  3. // 通过 sPath.matches(matches) 方法的返回值判断是否正确  
  4. // sPath 为路径字符串  

 

 

2,通用的文件夹或文件删除方法,直接调用此方法,即可实现删除文件夹或文件,包括文件夹下的所有文件

 

 

Java代码  收藏代码
  1. /** 
  2.  *  根据路径删除指定的目录或文件,无论存在与否 
  3.  *@param sPath  要删除的目录或文件 
  4.  *@return 删除成功返回 true,否则返回 false。 
  5.  */  
  6. public boolean DeleteFolder(String sPath) {  
  7.     flag = false;  
  8.     file = new File(sPath);  
  9.     // 判断目录或文件是否存在  
  10.     if (!file.exists()) {  // 不存在返回 false  
  11.         return flag;  
  12.     } else {  
  13.         // 判断是否为文件  
  14.         if (file.isFile()) {  // 为文件时调用删除文件方法  
  15.             return deleteFile(sPath);  
  16.         } else {  // 为目录时调用删除目录方法  
  17.             return deleteDirectory(sPath);  
  18.         }  
  19.     }  
  20. }  

 

 

3,实现删除文件的方法,

 

 

Java代码  收藏代码
  1. /** 
  2.  * 删除单个文件 
  3.  * @param   sPath    被删除文件的文件名 
  4.  * @return 单个文件删除成功返回true,否则返回false 
  5.  */  
  6. public boolean deleteFile(String sPath) {  
  7.     flag = false;  
  8.     file = new File(sPath);  
  9.     // 路径为文件且不为空则进行删除  
  10.     if (file.isFile() && file.exists()) {  
  11.         file.delete();  
  12.         flag = true;  
  13.     }  
  14.     return flag;  
  15. }  

 

 

4,实现删除文件夹的方法,

 

 

Java代码  收藏代码
  1. /** 
  2.  * 删除目录(文件夹)以及目录下的文件 
  3.  * @param   sPath 被删除目录的文件路径 
  4.  * @return  目录删除成功返回true,否则返回false 
  5.  */  
  6. public boolean deleteDirectory(String sPath) {  
  7.     //如果sPath不以文件分隔符结尾,自动添加文件分隔符  
  8.     if (!sPath.endsWith(File.separator)) {  
  9.         sPath = sPath + File.separator;  
  10.     }  
  11.     File dirFile = new File(sPath);  
  12.     //如果dir对应的文件不存在,或者不是一个目录,则退出  
  13.     if (!dirFile.exists() || !dirFile.isDirectory()) {  
  14.         return false;  
  15.     }  
  16.     flag = true;  
  17.     //删除文件夹下的所有文件(包括子目录)  
  18.     File[] files = dirFile.listFiles();  
  19.     for (int i = 0; i < files.length; i++) {  
  20.         //删除子文件  
  21.         if (files[i].isFile()) {  
  22.             flag = deleteFile(files[i].getAbsolutePath());  
  23.             if (!flag) break;  
  24.         } //删除子目录  
  25.         else {  
  26.             flag = deleteDirectory(files[i].getAbsolutePath());  
  27.             if (!flag) break;  
  28.         }  
  29.     }  
  30.     if (!flag) return false;  
  31.     //删除当前目录  
  32.     if (dirFile.delete()) {  
  33.         return true;  
  34.     } else {  
  35.         return false;  
  36.     }  
  37. }  

 

 

5,main() 方法

 

 

Java代码  收藏代码
  1. public static void main(String[] args) {  
  2.   
  3.     HandleFileClass hfc = new HandleFileClass();  
  4.     String path = "D:\\Abc\\123\\Ab1";  
  5.     boolean result = hfc.CreateFolder(path);  
  6.     System.out.println(result);  
  7.     path = "D:\\Abc\\124";  
  8.     result = hfc.DeleteFolder(path);  
  9.     System.out.println(result);  
  10.   
  11. }  

 

 

main() 方法只是做了一个简单的测试,建立文件夹和文件都是本地建立,情况考虑的应该很全面了,包括文件夹包含文件夹、文件。文件的不同情况…………

 

实现没有问题,可以正确删除文件夹和文件。

 

对于其他类型文件的操作继续学习…………

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

webapi返回字符串,解决自动加双引号或下划线的问题

返回类型改为HttpResponseMessage类型 [HttpGet] public HttpResponseMessage Test() {HttpResponseMessage responseMessage new HttpResponseMessage { Content new StringContent("你要返回的字符串", Encoding.GetEncoding("UTF-8"), "text/pla…

数据库杂谈(二)——数据模型

2 数据模型 摘要&#xff1a;数据模型&#xff08;Data Model&#xff09;是数据特征的抽象&#xff0c;它从抽象层次上描述了系统的静态特征、动态行为和约束条件&#xff0c;为数据库系统的信息表示与操作提供一个抽象的框架。数据模型所描述的内容有三部分&#xff0c;分别是…

android编译系统apk文件,VS2012中MonoForAndroid打包编译APK文件详细图文教程

本文用于介绍Visual Studio 2012中Xamarin Mono For Android 如何打包编译APK文件&#xff0c;从如何创建Android项目&#xff0c;到如何启动调试&#xff0c;都会逐个配图讲解。1 新建项目2 选择安卓3 选择安卓程序4 随便取名和设置存放路径5 确定1 创建完一个新的项目2 点击“…

判断程序是否已经运行

近段时间&#xff0c;需要写一个小功能&#xff0c;就是需要判断程序是否已经运行。某个程序安装后&#xff0c;也许被多个用户运行。那怎样判断当前用户已经运行了此程序了呢&#xff1f;下面是Insus.NET的做法&#xff0c;就是&#xff1a;《VB.NET WinForm获取运行程序用户名…

hyper虚拟机下对centos进行动态扩容

在关机状态下&#xff0c;可增加centos的磁盘空间&#xff0c;但是增加的这部分空间&#xff0c;还需在centos完成以下操作&#xff0c;才能使用1.查看现有的硬盘分区&#xff08;现在空间没有变大&#xff09;#df -h2.对新增的硬盘空间做新增分区&#xff08;硬盘数没有增加&a…

浅谈缓存技术在ASP.NET中的运用

本篇文章虽不谈架构&#xff0c;但是Cache又是架构中不可或缺的部分&#xff0c;因此&#xff0c;在讲解Cache的同时&#xff0c;将会提及到部分架构知识&#xff0c;关于架构部分&#xff0c;读者可以不用理解&#xff0c;或者直接跳过&#xff0c; 你只需关心Cache即可&#…

Git快速入门+复习笔记

对于学习编程的同志来说&#xff0c;学习Git是必不可少的一项技术&#xff0c;如果你是第一次观看我的文章&#xff0c;欢迎关注我的频道&#xff0c;我会分享更多有趣的知识。 文章目录1 目标2 概述2.1 开发中的实际场景2.2 版本控制器的方式2.3 工作流程图3 Git安装和常用命令…

android程序名称,Android应用程序名称带上标

您需要使用ISO-8859-1 / UTF-8字符来完成插入(在您的情况下)上标3.清单HTML ISO-8859-1 Reference个实体.例如在AndroidManifest.xml中android:hardwareAccelerated"true"android:icon"drawable/ic_launcher"android:label"Myapp" 或者使用HTML实…

阿里云部署Docker(5)----管理和公布您的镜像

出到这节&#xff0c;我在百度搜索了一下“阿里云部署Docker”&#xff0c;突然发现怎么会有人跟我写的一样呢&#xff1f;哦&#xff0c;原来是其它博客系统的爬虫来抓取&#xff0c;然后也不会写转载自什么什么的。所以&#xff0c;我最终明确为什么那些大咖的文章总会在文章…

spring security method security

spring security method security 参考 Spring Security 官方文档 http://www.concretepage.com/spring/spring-security/preauthorize-postauthorize-in-spring-security 方法调用安全 对应的注解EnableGlobalMethodSecurity,该注解放在GlobalMethodSecurityConfiguration的子…

Android浏览器速度测试,Android平台浏览器网页加载速度对比评测

参与测试的浏览器手机上网已经渐渐成为人们的一种习惯&#xff0c;无论在等公交时、乘地铁时、吃饭等餐时&#xff0c;很多朋友都习惯掏出手机简单浏览一下微博、人人、新闻网站等页面。移动网络的确为我们带来了莫大的便利&#xff0c;但网速和稳定性却是移动网络的硬伤。针对…

操作系统随笔(一)

你好朋友&#xff0c;当你点进来这份读书笔记时&#xff0c;我相信你不是无意中点进来就是对这一部分饶有兴趣&#xff0c;可惜的是&#xff0c;我也只是个普通的大学生&#xff0c;有时候对知识的见解获取没有屏幕前的你那么有天赋&#xff0c;所以在阅读完这篇文章的同时点个…

安装Fedora后

更新操作系统版本&#xff1a; https://fedoraproject.org/wiki/DNF_system_upgrade 靠谱&#xff1b; 设置ssh&#xff1a;ssh生成公钥私钥、默认root(.ssh/config)、chmod -R 600 .ssh (.ssh/config)Host * User root Protocol 2 ServerAliveInterval 30 shadowsocks客户端…

codeforces 483B Friends and Presents 解题报告

题目链接&#xff1a;http://codeforces.com/problemset/problem/483/B 题目意思&#xff1a;有两个 friends&#xff0c;需要将 cnt1 个不能整除 x 的数分给第一个friend&#xff0c;cnt2 个不能整除 y 的数分给第二个friend。x 和 y 都是素数来的。要求求出最小的 v&#xff…

并行计算随笔(一)

如果觉得本篇文章对你有所启发&#xff0c;请给我点个赞好吗&#xff0c;这对我很重要&#xff0c;谢谢 文章目录1 并行计算基础1.1 什么是并行计算1.1.1 对计算速度的需求1.1.2 并行计算1.1.3 并行计算的基本条件1.1.4 平行计算和分布式计算1.2 为什么需要并行计算1.3 并行计算…

命令行的形式运行php

转自&#xff1a;http://www.cnblogs.com/myjavawork/articles/1869205.html 注意&#xff1a;在安装php时需要将php 的安装目录加到环境变量 PATH 中 (右击我的电脑->属性->高级->环境变量, 如果存在 PATH 则在原来的 PATH 中加入你的PHP安装目录, 如果不存在则新建一…

LeetCode-18-4Sum

一、问题描述 给定一个数组S&#xff0c;和一个int类型的数target&#xff0c;在S中寻找四个数&#xff0c;这四个数之和为target。返回一个vector<vector<int>> 例子&#xff1a;S{1, 0, -1, 0, -2, 2}&#xff0c;target 0.返回结果为{{-1&#xff0c;0&#xf…

Ubuntu安装qwt步骤

1、svn获取代码 svn checkout https://svn.code.sf.net/p/qwt/code/trunk/qwt 2、生产makefile qmake 3、编译(确保已经安装了qopengl再进行这一步&#xff0c;不然失败) make 4、安装 make install转载于:https://www.cnblogs.com/larkin/p/4058959.html

idea android 模块,IntelliJ IDEA 12 - 新的Android应用程序模块向导失败,“无法找到模块的资源目录”...

我面临的问题是一个非常简单的问题... 我无法使用IntelliJ IDEA 12来帮助我创建一个Android应用程序模块(项目)。IntelliJ IDEA 12 - 新的Android应用程序模块向导失败&#xff0c;“无法找到模块的资源目录”成功安装的IntelliJ IDEA 12和使IDE和二者的SDK(Java和Android设备)…

4. time datetime 时间模块

1) 时间表示方式 •时间戳(timestamp)&#xff1a;表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”&#xff0c;返回的是float类型。 •结构化的时间(struct_time)&#xff1a;struct_time元组共有9个元素共九个元素:(年&#xff0c;月&am…