`
q_wong
  • 浏览: 108478 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

upgrader2

 
阅读更多

public class XXUpdate
{
    /**
     * 命令行入口
     * 输入参数:新版本XX路径、旧版本XX路径、更新文件路径
     * 
     * @param args
     */
    public static void main(String args[])
    {
        String newXXPath = args[0];
        String oldXXPath = args[1];
        String updatePath = args[2];
        
        File newXX = new File(newXXPath);
        if (!newXX.exists())
        {
            System.out.println("输入的文件路径有误!");
            return;
        }
        
        if (!copyNewFiles(newXX, newXXPath, oldXXPath, updatePath))
        {
            System.out.println("拷贝失败!");
        }
    }
    
    /**
     * 拷贝所有更新的文件
     * 
     * @param newXX
     * @param newXXPath
     * @param oldXXPath
     * @param updatePath
     * @return
     */
    private static boolean copyNewFiles(File newXX, String newXXPath,
            String oldXXPath, String updatePath)
    {
        boolean isSucceed = true;
        if (newXX.isDirectory())
        {
            File[] subFiles = newXX.listFiles();
            int len = subFiles.length;
            File newXXFile;
            File oldXXFile;
            for (int i = 0; (i < len) && isSucceed; i++)
            {
                newXXFile = subFiles[i];
                String relativePathStr = FileUtils.getRelativePath(newXXPath,
                        newXXFile.getAbsolutePath());
                oldXXFile = new File(oldXXPath + "/" + relativePathStr);
                
                if (newXXFile.isDirectory())
                {
                    isSucceed = copyNewFiles(newXXFile,
                            newXXPath,
                            oldXXPath,
                            updatePath);
                }
                else
                {
                    if (!oldXXFile.exists()
                            || !MD5Utils.getMD5(newXXFile)
                                    .equals(MD5Utils.getMD5(oldXXFile)))
                    {
                        isSucceed = FileUtils.copyFile(newXXFile.getAbsolutePath(),
                                updatePath + "/" + relativePathStr);
                    }
                    
                }
            }
        }
        
        return isSucceed;
    }
}
 
分享到:
评论

相关推荐

    EasyUEFI Windows To Go Upgrader Enterprise(微软Windows To Go升级工具)官方中文版V4.6

    EasyUEFI Windows To Go Upgrader Enterprise(微软Windows To Go升级工具)官方中文版V4.6

    组件名:Upgrader

    2、具备比较完备的进度控制 3、与autoupgrader组件相比,相对更简单些,但autoupgrader必须要求具备GUI,而这个组件则不需要。 4、具自动回滚功能。如停止下载或下载失败都会执行回滚操作。 5、可将文件方便地下载到...

    pip-upgrader:交互式pip需求升级程序。 它还会更新您的requirements.txt文件中的版本

    目前未维护,我在所有项目中都使用诗歌 ... 为了避免在项目中安装所有这些依赖项,可以在系统中而不是virtualenv中安装pip-upgrader upgrader。 如果您将其安装在系统中,并且需要升级,请运行pip install -U pip-upgra

    Upgrader-XE.rar_DELPHI XE _XE_delphi 升级_delphi升级_自动升级

    2. **版本比较**:如果检测到有新版本,组件会比较当前版本号和最新版本号,确定是否需要升级。 3. **下载更新**:如果需要升级,组件将下载新版本的安装包或增量补丁到用户的计算机上。 4. **安装更新**:下载完成...

    Flutter下载更新App的方法示例

    Flutter下载更新App的方法示例 Flutter是一款跨平台的移动应用程序开发框架,通过使用Flutter可以快速构建高质量的移动应用程序。然而,在移动应用程序的开发过程中,更新应用程序是一个非常重要的步骤。...

    upgrader:轻量级更新服务器

    2. **文档**:关于如何配置、部署和使用"Upgrader"的说明文档。 3. **示例**:演示如何集成和使用"Upgrader"的示例项目。 4. **测试**:单元测试和集成测试用例,以验证代码功能的正确性。 5. **配置文件**:服务器...

    silverstripe-upgrader:一种工具,可帮助您升级代码以处理所用软件包中的API更改

    要安装PHAR可执行文件,请执行以下操作: 或wget https://silverstripe.github.io/silverstripe-upgrader/upgrade-code.phar 使文件可执行chmod +x upgrade-code.phar 将文件移动到路径中的文件夹,例如sudo mv ...

    rails_upgrader:迁移到强参数

    gem 'rails_upgrader' end 然后执行: $ bundle 或自己安装为: $ gem install rails_upgrader 用法 rails_upgrader COMMAND 命令: go :尝试升级模型和控制器到位。 dry-run :在终端中编写强大的参数迁移...

    database_upgrader:用于管理架构更改的手册

    ['database_upgrader']['cache_path'] 细绳 在哪里缓存数据库升级程序文件 厨师文件缓存目录中的 database_upgrader ['database_upgrader']['cache_archive'] 细绳 包含 DatabaseUpgrader.exe 的存档文件应复制到...

    GWTP-Typed-Slot-Upgrader

    GWTP-Typed-Slot-Upgrader 是一个专为GWT(Google Web Toolkit)开发者设计的工具,主要用于升级GWT项目的TypedSlot系统。 TypedSlot是GWTP框架中的一个重要概念,它提供了一种类型安全的方式来处理事件和槽口,使得...

    core_upgrader:一次运行多个TYPO3版本的核心升级向导

    TYPO3扩展core_upgrader 一次运行多个TYPO3版本(到10.4)的升级向导。特征此扩展允许一步将TYPO3核心从v7.6升级到v10.4。安装只需使用Composer安装扩展程序或从下载。 composer require ichhabrecht/core-upgrader ...

    wize_upgrader:从 rails 3.2 升级到 rails 4 的快速而肮脏的宝石

    $ gem install wize_upgrader 从 Rails 应用程序外部运行它。 $ wize_upgrader 它能做什么 将旧应用程序的副本复制到 &lt;rails&gt;_old 使用rails new &lt;rails&gt; -T生成一个新的 rails 应用程序 复制过来 .git 应用...

    phpmyadmin-upgrader

    PHPMyAdmin升级程序介绍这...用法# For 4.9.7 version./upgrader.sh blow_secret_token 4.9.7# For 5.1.0 version./upgrader.sh blow_secret_token 5.1.0当前要求PHP 7.2 , 7.3或7.4版本。 PHPMyAdmin 4.9.7版本。参考

    fedora-upgrader-开源

    无需重新安装即可升级到Fedora,Scientific Linux和CentOS的最新版本。 大部分的fedora-upgradeer都是使用Fedora Project的YUM升级Wiki(http://fedoraproject.org/wiki/YumUpgradeFaq)中的指南编写的。

    FreshService Usability Upgrader-crx插件

    语言:English (UK) 该扩展为新鲜服务支持页面提供了额外的功能。 该扩展为新鲜服务支持页面提供了额外的功能。 现在将在整个行中突出显示票证。 现在,票证页面将自动刷新! 在此处查看代码和更新...

    AutoUpgraderXE2(应多个小朋友要求改的).rar

    《AutoUpgraderXE2:Delphi开发的自动升级程序详解》 在IT行业中,软件的更新和维护是一项持续的任务,为了确保用户始终能够使用到最新、最稳定的功能,开发者通常会提供一种自动升级机制。这里我们要探讨的是...

    js-libp2p-websockets:libp2p使用并实现接口传输规范的WebSockets模块

    用法 安装 npm &gt; npm i libp2p-websockets 构造器属性const WS = require ( 'libp2p-websockets' )const properties = { upgrader , filter}const ws = new WS ( properties ) 名称类型描述默认升级器Upgrader 具有...

    TIA博途项目如何进行版本的升级操作?.docx

    ##### 2. 升级方式 - **手动升级**:适用于特定情况下对单个项目进行升级。 - **高版本软件打开**:适用于批量升级多个项目。 #### 三、手动升级步骤 1. **启动TIA软件**:首先确保安装了最新的TIA软件版本。 2. *...

    joymo_app_upgrade

    2、执行 flutter 命令获取包: flutter pub get` 3、引入 import 'package:joymo_app_upgrade/joymo_app_upgrade.dart'; 4、如果你需要支持 Android 平台,在./android/app/src/main/AndroidManifest.xml文件中配置...

Global site tag (gtag.js) - Google Analytics