java删除文件和文件夹具体实现

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


代码如下:

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

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


代码如下:

/**
 *  根据路径删除指定的目录或文件,无论存在与否
 *@param sPath  要删除的目录或文件
 *@return 删除成功返回 true,否则返回 false。
 */ 
public boolean DeleteFolder(String sPath) { 
    flag = false; 
    file = new File(sPath); 
    // 判断目录或文件是否存在 
    if (!file.exists()) {  // 不存在返回 false 
        return flag; 
    } else { 
        // 判断是否为文件 
        if (file.isFile()) {  // 为文件时调用删除文件方法 
            return deleteFile(sPath); 
        } else {  // 为目录时调用删除目录方法 
            return deleteDirectory(sPath); 
        } 
    } 
}

3,实现删除文件的方法,
Java代码


代码如下:

/**
 * 删除单个文件
 * @param   sPath    被删除文件的文件名
 * @return 单个文件删除成功返回true,否则返回false
 */ 
public boolean deleteFile(String sPath) { 
    flag = false; 
    file = new File(sPath); 
    // 路径为文件且不为空则进行删除 
    if (file.isFile() && file.exists()) { 
        file.delete(); 
        flag = true; 
    } 
    return flag; 
}

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


代码如下:

/**
 * 删除目录(文件夹)以及目录下的文件
 * @param   sPath 被删除目录的文件路径
 * @return  目录删除成功返回true,否则返回false
 */ 
public boolean deleteDirectory(String sPath) { 
    //如果sPath不以文件分隔符结尾,自动添加文件分隔符 
    if (!sPath.endsWith(File.separator)) { 
        sPath = sPath + File.separator; 
    } 
    File dirFile = new File(sPath); 
    //如果dir对应的文件不存在,或者不是一个目录,则退出 
    if (!dirFile.exists() || !dirFile.isDirectory()) { 
        return false; 
    } 
    flag = true; 
    //删除文件夹下的所有文件(包括子目录) 
    File[] files = dirFile.listFiles(); 
    for (int i = 0; i < files.length; i++) { 
        //删除子文件 
        if (files[i].isFile()) { 
            flag = deleteFile(files[i].getAbsolutePath()); 
            if (!flag) break; 
        } //删除子目录 
        else { 
            flag = deleteDirectory(files[i].getAbsolutePath()); 
            if (!flag) break; 
        } 
    } 
    if (!flag) return false; 
    //删除当前目录 
    if (dirFile.delete()) { 
        return true; 
    } else { 
        return false; 
    } 
}

5,main() 方法
Java代码


代码如下:

public static void main(String[] args) { 
    HandleFileClass hfc = new HandleFileClass(); 
    String path = "D:\\Abc\\123\\Ab1"; 
    boolean result = hfc.CreateFolder(path); 
    System.out.println(result); 
    path = "D:\\Abc\\124"; 
    result = hfc.DeleteFolder(path); 
    System.out.println(result); 
}

main() 方法只是做了一个简单的测试,建立文件夹和文件都是本地建立,情况考虑的应该很全面了,包括文件夹包含文件夹、文件。文件的不同情况…………
实现没有问题,可以正确删除文件夹和文件。

(0)

相关推荐

  • Java读写Windows共享文件夹的方法实例

    项目常常需要有访问共享文件夹的需求,例如共享文件夹存储照片.文件等.那么如何使用Java读写Windows共享文件夹呢? Java可以使用JCIFS框架对Windows共享文件夹进行读写,就这个框架可以让我们像访问本地文件夹一下访问远程文件夹. JCIFS的网址: http://jcifs.samba.org/ JCIFS是使用纯Java开发的一个开源框架,通过smb协议访问远程文件夹.该框架同时支持Windows共享文件夹和Linux共享文件夹,不过,Linux共享文件夹需要安装Samba服务

  • java 对文件夹目录进行深度遍历实例代码

    java 对文件夹目录进行深度遍历实例代码 1.题目 对指定目录进行所有内容的列出(包含子目录中的内容),也可以理解为对目录进行深度遍历. 2.解题思想 从电脑中获取文件目录,建立函数对其遍历,在这个函数中需要对该目录中的每个文件进行判断,如果文件还是目录,则调用函数本身继续对其进行遍历,如果文件不是目录,则直接输出文件名.为了加强显示的效果,我们还可以建立一个getSpace函数,对其进行缩进. 需要注意的是,不要直接遍历C盘的内容,其目录层次太深,含有太多的系统级文件,容易返回为空,导致空指

  • java删除指定目录下所有空文件夹的方法

    本文实例讲述了java删除指定目录下所有空文件夹的方法.分享给大家供大家参考,具体如下: package com.func; import java.io.File; import java.util.ArrayList; import java.util.List; /** * 删除指定目录下的所有空文件夹 * * @author zdw * */ public class FileUtils { List<File> list = new ArrayList<File>();

  • Java创建文件夹及文件实例代码

    复制代码 代码如下: package com.xhkj.util; import java.io.File;import java.io.IOException; public class CreateFileUtil { public static boolean CreateFile(String destFileName) {    File file = new File(destFileName);    if (file.exists()) {     System.out.prin

  • JAVA遍历一个文件夹中的所有文件的小例子

    复制代码 代码如下: import java.io.File;import java.util.ArrayList; public class FileTest { private static ArrayList<String> filelist = new ArrayList<String>(); public static void main(String[] args) throws Exception { String filePath = "E://Strut

  • Java获取文件夹下所有文件名称的方法示例

    本文实例讲述了Java获取文件夹下所有文件名称的方法.分享给大家供大家参考,具体如下: import java.io.File; public class GetFoldFileNames { /** * * @author zdz8207 */ public static void main(String[] args) { getFileName(); } public static void getFileName() { String path = "G:/lxz/20130611&qu

  • java 删除文件夹中的所有内容而不删除文件夹本身的实例

    实例如下: package com.xx; import java.io.File; public class Test { public static void main(String[] args) { String fileRoot = "C:/Users/xx/Desktop/xx/xxx"; delFolder(fileRoot); System.out.println("deleted"); } // // 删除完文件后删除文件夹 // // param

  • JavaWeb利用struts实现文件下载时改变文件名称

    先看看效果图: package com.fenghuo.struts.download; import java.net.URLEncoder; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.

  • Java实现读取文件夹下(包括子目录)所有文件的文件名

    在编程的过程中,经常会用到对文件的读写操作等.比如,找出某一个文件夹下的所有文件名等. 下面的程序给出了,获取某一给定文件夹下所有文件的绝对路径的程序.可以作为某一个模块,在需要的时候直接使用. package src; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStrea

  • java实现读取、删除文件夹下的文件

    java实现读取.删除文件夹下的文件 package test.com; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; public class ReadFile { public ReadFile() { } /** * 读取某个文件夹下的所有文件 */ public static boolean readfile(String filepath) throws Fi

  • JAVA读取文件夹大小的几种方法实例

    (一)单线程递归方式 复制代码 代码如下: package com.taobao.test; import java.io.File; public class TotalFileSizeSequential { public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"; // 递归方式 计算文件的大小    private long getTotalSizeO

  • Java读写文件创建文件夹多种方法示例详解

    出现乱码请修改为 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path), "GBK")); 一.获得控制台用户输入的信息 复制代码 代码如下: public String getInputMessage() throws IOException...{    System.out.println("请输入您的命令∶");    byte buffe

随机推荐