`

JAVA文件/文件夹操作实用函数

阅读更多
列举了一些这个项目中用到的文件/文件夹操作的函数,以备后用。

/**
* 计算文件夹大小
*/
public static final long getDirectorySize( File dir ) {
    long retSize = 0;
    if ( ( dir == null ) || !dir.isDirectory() ) {
        return retSize;
    }
    File[] entries = dir.listFiles();
    int count = entries.length;
    for ( int i = 0; i < count; i++ ) {
        if ( entries[ i ].isDirectory() ) {
            retSize += getDirectorySize( entries[ i ] );
        } else {
            retSize += entries[ i ].length();
        }
    }
    return retSize;
}  

/**
* 删除文件夹
*/
public static final boolean deleteDirectory( File dir ) {
    boolean bRet = false;
    if ( dir !=null && dir.isDirectory() ) {
        File[] entries = dir.listFiles();
        int sz = entries.length;
        for ( int i = 0; i < sz; i++ ) {
            if ( entries[ i ].isDirectory() ) {
                deleteDirectory( entries[ i ] );
            } else {
                entries[ i ].delete();
            }
        }
        dir.delete();
        bRet = true;
    }
    return bRet;
}

/**
* 新建文件夹
*/
public static final void createDirectory( String strDir ) {
    File file = new File( strDir );
    if ( !file.isDirectory() ) {
        file.mkdir();
    }
}

/**
* 移动文件
*/
public static final void moveFile( String strOriginal, String strDest ) throws IOException {
    try {
        File fileOriginal = new File( strOriginal );
        File fileDest = new File( strDest );
        fileOriginal.renameTo( fileDest );
    } catch ( IOException e ) {
        throw new IOException("");
    }
}

/**
* 复制文件
*/
public static final void copyFile( String strOriginal, String strDest ) throws IOException{
    try {
        File fileOriginal = new File( strOriginal );
        File fileDest = new File( strDest );
        FileInputStream fis = new FileInputStream( fileOriginal );
        FileOutputStream fos = new FileOutputStream( fileDest );
        byte[] bytes = new byte[ 1024 ];
        int c;
        while ( ( c = fis.read( bytes ) ) != -1 ) {
            fos.write( bytes, 0, c );
        }
        fis.close();
        fos.close();
    } catch ( IOException e ) {
        throw new IOException("");
    }
}
   
/**
* 复制文件夹
*/
public static final boolean copyDirectory( String strOriginal, String  strDest ) throws Exception {
    boolean bRet = false;
    File dirOriginal = new File( strOriginal );
    if ( dirOriginal !=null && dirOriginal.isDirectory() ) {
        createDirectory( strDest );
        File dirDest = new File( strDest );
        File[] entries = dirOriginal.listFiles();
        int sz = entries.length;
        for ( int i = 0; i < sz; i++ ) {
            StringBuffer sbDest = new StringBuffer();
            sbDest.append( dirDest.getPath() );
            sbDest.append( "\" );
            sbDest.append( entries[ i ].getName() );
            if ( entries[ i ].isDirectory() ) {
                strDest = dirDest.getPath() + "\" + entries[ i ].getName();
                copyDirectory( entries[ i ].getPath(), sbDest.toString() );
            } else {
                copyFile( entries[ i ].getPath(), sbDest.toString() );
            }
        }
        bRet = true;
    }
    return bRet;
}

/**
* 读取文件
*/
private String readFile( File file ) {
    String text= "";
    if ( file.exists() ) {
        Reader reader = null;
        try {
            char[] tempchars = new char[1024];
            int charread = 0;
            reader = new InputStreamReader( new FileInputStream( file ), "UTF-8" );
            while ( ( charread = reader.read( tempchars ) ) != -1 ) {
                for ( int i = 0; i < charread; i++ ) {
                    if ( tempchars[i] == '\r' ) {
                        continue;
                    } else {
                        text += tempchars[i];
                    }
                }
            }
            reader.close();
        } catch ( IOException e ) {
            throw new IOException("");
        }
    }
    return text;
}

/**
* 写入文件
*/
private boolean writeFile( File file, String text ) {
    try {
        Writer writer = new OutputStreamWriter( new FileOutputStream( file ), "UTF-8" );
        writer.write( text );
        writer.close();
        return true;
    } catch ( IOException e ) {
        return false;
    }
}

/**
* 文件夹中的文件按文件名排序(升序)
*/
File[]   files = ( new File( strPictureDirectory ) ).listFiles();
File temp;
for ( int i = 0; i < files.length; i++ ) {
    for ( int j = i; j < files.length; j++ ) {
        if ( files[i].getName().compareTo( files[j].getName() ) > 0 ) {
            temp = files[i];
            files[i] = files[j];
            files[j] = temp;
        }
    }
}
分享到:
评论

相关推荐

    Java 遍历文件夹内文件

    在Java编程中,遍历文件夹内的文件是一项常见的任务,特别是在处理文件系统操作时。这个话题涉及到了Java的I/O(输入/输出)流、文件系统API和递归概念。以下是对这一主题的详细讲解: 首先,Java提供了一个强大的`...

    java代码新建文件夹

    根据给定的信息,我们可以总结出以下关于如何使用Java代码创建文件夹的相关知识点: ### Java创建文件夹的基础概念 在Java中,创建文件夹通常涉及到`java.io.File`类的使用。`File`类提供了多种方法来操作文件系统...

    java 打包文件(文件夹)为 zip压缩包 java 压缩文件

    在Java编程环境中,打包文件或文件夹到zip压缩包是一项常见的任务,这通常涉及到I/O操作和文件处理。`ZIPUtil`可能是一个自定义的工具类,用于简化这个过程。以下是一些关于如何在Java中实现这个功能的关键知识点: ...

    java实现windows文件系统操作监控

    在Java编程环境中,实现Windows文件系统的操作监控是一个有趣且实用的技术挑战。这涉及到对系统底层事件的捕获,通常需要借助于系统钩子(System Hooks)的概念。在Java中,虽然原生支持并不完善,但我们可以通过...

    监听文件下文件发生变化时复制文件到另一个文件夹

    搜索文件可能涉及到文件系统的遍历,而删除文件则可以使用类似上述的文件操作函数,但要注意删除操作不可逆,需谨慎处理。 总结起来,这个任务的核心在于使用文件系统监听器来检测文件变化,并通过多线程技术在变化...

    Java监控目录文件夹程序.rar

    本项目“Java监控目录文件夹程序”是利用Java编写的一个实用工具,旨在实时监控指定目录下的文件和文件夹变化。这个程序每5秒进行一次自动扫描,更新并显示目录中的文件大小和数量变化,对于开发者来说,这种功能...

    Java实现文件批量重命名

    通过以上知识点的学习和实践,开发者不仅可以实现批量重命名文件的功能,还能提升对Java文件操作的理解,增强解决问题的能力。在实际工作中,这样的技能对于提高工作效率,尤其是在处理大量数据时,显得尤为重要。

    JAVA文件学习,文件搜索器

    【标题】"JAVA文件学习,文件搜索器"指的是一个基于Java编程语言开发的实用工具,它的主要功能是帮助用户在计算机文件系统中快速查找特定的文件或文件夹。这个工具可能利用了Java的I/O流、文件操作以及目录遍历等...

    打开指定的文件以及文件夹的例子

    这个"打开指定的文件以及文件夹的例子"是一个实用小程序,旨在帮助用户更方便地访问和操作计算机上的文件和目录。这种工具通常由编程语言如Python、C#或Java编写,通过提供图形用户界面(GUI)或命令行接口(CLI)来...

    ListView遍历指定地址的文件及文件夹

    总的来说,实现"ListView遍历指定地址的文件及文件夹"涉及文件系统的操作、Adapter的定制、UI交互逻辑以及性能优化等多个方面。通过这个功能,用户可以方便地浏览和管理本地的电影资源或者其他类型的文件,极大地...

    遍历文件夹自动生成目录树

    在IT领域,遍历文件夹自动生成目录树是一项常见的任务,尤其在文件管理、数据整理和自动化脚本编写中非常实用。目录树,也被称为文件系统树,是计算机操作系统中文件和文件夹组织的一种视觉表示,它以层级结构展示...

    列出目录中所有文件(含文件夹)

    总之,列出目录中所有文件(含文件夹)是一项基础但重要的任务,它涉及文件系统操作、编程语言的文件I/O功能、递归算法和安全性考量。通过掌握这些知识,开发者能够创建各种实用工具来管理和展示文件系统的内容。

    批量修改文件文件夹名

    例如,Python的os和shutil模块,JavaScript的fs模块,或是C#的System.IO命名空间,都提供了相应的文件操作函数。 5. **文件夹名的修改**:与文件名的修改类似,文件夹名也可以批量处理。Windows批处理和PowerShell...

    Java基于Minio的个人在线文件夹源码.zip

    【标题】"Java基于Minio的个人在线文件夹源码.zip"揭示了这是一个使用Java编程语言,结合Minio服务构建的个人在线文件存储和共享应用的源代码项目。Minio是一个开源的对象存储服务器,适用于云存储场景,尤其适合于...

    JAVA实现遍历文件夹下的所有文件(递归调用和非递归调用)

    在Java编程中,遍历文件夹下的所有文件是一项常见的任务,无论是为了读取、处理还是备份文件系统中的数据。本文将详细解释两种方法来实现这一功能:一种是不使用递归的非递归方法,另一种是使用递归的方法。 首先,...

    java源码包---java 源码 大量 实例

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    如何遍历文件夹查找文件

    10. **实际应用**:遍历文件夹查找文件常用于备份、迁移、清理、统计分析等多种场景,是许多实用工具和脚本的核心部分。 了解这些知识点后,你可以根据具体需求选择合适的编程语言和方法,编写出能够高效遍历文件夹...

    java删除文件夹完整版

    本文将详细介绍如何使用Java编写代码来完成文件夹及其子文件夹和文件的彻底删除操作。具体包括以下几个方面: 1. **File类的基本用法**:创建`File`对象,并了解其基本方法。 2. **递归删除算法设计**:设计一个递归...

    查找文件夹下所有的文件,我辛苦了好久才写出来的

    以下是一些关于如何查找文件夹下所有文件的详细知识,以及一些实用的方法和技巧。 首先,让我们讨论在Windows操作系统中查找文件的基本方法。Windows提供了内置的“搜索”功能,可以通过文件名、文件类型、修改日期...

    java文件操作

    Java文件操作是Java编程语言中一个非常重要的领域,它允许开发者对本地文件系统进行各种操作,包括创建、读取、修改和删除文件或目录。在提供的代码片段中,我们可以看到几种基本的文件和目录操作方法,下面将详细...

Global site tag (gtag.js) - Google Analytics